c# - How to call StyleSelector on PropertyChanges of a row -


i have rowstyleselector datagrid. it's called correctly on load of window. on changes of rows when call propertychange it's not called.

<datagrid grid.row="2" columnwidth="*"  itemssource="{binding traceitemcollectionviewsource , mode=twoway , updatesourcetrigger=propertychanged}" enablerowvirtualization="false"  rowstyleselector="{staticresource tracerowstyleselector}" isreadonly="true" name="tracedatagrid" margin="5,5,5,5" padding="5,5,5,5" autogeneratecolumns="false"> 

this model:

public class tracedataitem :  observableobject {      private string _newreelid;     public string newreelid     {         { return _newreelid; }         set         {             if (value != _newreelid)             {                 _newreelid = value;                 raisepropertychanged("newreelid");             }         }      }   } 

how can make rowstyleselector called when propertychanged("newreelid") called .

thanks.

styleselector doesn't listen propertychange notifications. can use datatrigger based on boolean property instead:

bool _reelidchanged; public bool reelidchanged  {     { return _reelidchanged; }     set     {         _reelidchanged = value;         raisepropertychanged("reelidchanged");     } }  private string _newreelid; public string newreelid {     { return _newreelid; }     set     {         if (value != _newreelid)         {             _newreelid = value;             reelidchanged = true;             raisepropertychanged("newreelid");         }         else             reelidchanged = false;     }  } 

xaml:

<window.resources>     <style targettype="datagridrow" x:key="tracerowstyle">         <setter property="background" value="{dynamicresource databackground}" />         <style.triggers>             <datatrigger binding="{binding path=reelidchanged }" value="true">                 <setter property="background" value="red" />             </datatrigger>         </style.triggers>     </style> </window.resources> 

...

    <datagrid grid.row="0"                columnwidth="*"                 itemssource="{binding traceitemcollectionviewsource  , mode=twoway , updatesourcetrigger=propertychanged}"                enablerowvirtualization="false"                 rowstyle="{staticresource tracerowstyle}"                isreadonly="true"               name="tracedatagrid"                margin="5,5,5,5"                padding="5,5,5,5"                autogeneratecolumns="false"/> 

Comments

Popular posts from this blog

c# - Validate object ID from GET to POST -

node.js - Custom Model Validator SailsJS -

php - Find a regex to take part of Email -