c# - WPF datagrid.rowstyle binding -


i've got known error

system.windows.data error: 2 : cannot find governing frameworkelement or frameworkcontentelement target element.bindingexpression:path=percent; dataitem=null; target element 'gradientstop' (hashcode=81530); target property 'offset' (type 'double')

on part of code :

        <datagrid.rowstyle>             <style targettype="datagridrow">                 <style.triggers>                     <datatrigger binding="{binding state}" value="started">                         <setter property="background">                             <setter.value>                                 <lineargradientbrush endpoint="1,0" startpoint="0,0">                                     <gradientstop color="green" offset="0" />                                     <gradientstop color="#ff2d2d30" offset="{binding percent}" />                                 </lineargradientbrush>                             </setter.value>                         </setter>                     </datatrigger>                     <trigger property="validation.haserror" value="true">                         <setter property="borderthickness" value="1"/>                         <setter property="borderbrush" value="red"/>                     </trigger>                 </style.triggers>             </style>         </datagrid.rowstyle> 

i've tried set datacontext proxy did not work :

        <datagrid.resources>             <app:bindingproxy x:key="proxy" data="{binding}" />         </datagrid.resources>          [...]         <gradientstop color="#ff2d2d30" offset="{binding data.percent, source={staticresource proxyrow}}" /> 

system.windows.data error: 40 : bindingexpression path error: 'percent' property not found on 'object' ''viewmodel' (hashcode=37637549)'. bindingexpression:path=data.percent; dataitem='bindingproxy' (hashcode=3342738); target element 'gradientstop' (hashcode=64874797); target property 'offset' (type 'double')

which obvious data contains datacontext of control viewmodel.

any suggestion ? !

as suggested in other posts, thought not apply issue, using converter suits ! here references:

binding gradientstop works reports error

how bind gradientstop colours or gradientstops property in silverlight?

    public object convert(object value, type targettype, object parameter,         system.globalization.cultureinfo culture)     {         model.listparameters parameters = (model.listparameters)value;         if(parameters !=null)         {             var start = new gradientstop();             start.color = colors.green;             start.offset = 0;              var stop = new gradientstop();             stop.color = (color)colorconverter.convertfromstring("#ff2d2d30");             stop.offset = parameters .percent;              var result = new lineargradientbrush();             result.startpoint = new point(0, 0);             result.endpoint = new point(1, 0);             result.gradientstops.add(start);             result.gradientstops.add(stop);              return result;         }         return null;     } 

and xaml

<usercontrol.resources>    <app:gradientprogressconverter  x:key="gradientprogressconverter" /> </usercontrol.resources> <datagrid>    <datagrid.rowstyle>       <style targettype="datagridrow">          <style.triggers>             <datatrigger binding="{binding state}" value="started">                 <setter property="background" value="{binding converter={staticresource gradientprogressconverter}}" />             </datatrigger>          </style.triggers>       </style>    </datagrid.rowstyle> </<datagrid> 

Comments