c# - WPF checkbox twoway binding from property to UI is not working on propertychanged event -
i using twoway binding in checkbox data column in telerik grid view control. when change state of checkbox on ui, working fine triggering property changed event. want vice versa, on changing property value on code behind, checkbox state should update on ui.
<button x:name="btn1" grid.row="0" content="refresh" click="btn1_click" width="100" margin="0,5"/> <telerik:radgridview grid.row="1" x:name="gridview" showgrouppanel="false" isfilteringallowed="false" selectionmode="multiple"> <telerik:radgridview.columns> <telerik:gridviewdatacolumn width="70" header="color"> <telerik:gridviewdatacolumn.celltemplate> <datatemplate> <stackpanel orientation="horizontal"> <checkbox ischecked="{binding changevalue, mode=twoway}" margin="3"/> </stackpanel> </datatemplate> </telerik:gridviewdatacolumn.celltemplate> </telerik:gridviewdatacolumn> <telerik:gridviewdatacolumn header="data" datamemberbinding="{binding dataval}" isreadonly="true"/> </telerik:radgridview.columns> </telerik:radgridview> </grid>
the code behind below
public partial class mainwindow : window { list<data> datasource = new list<data>(); public mainwindow() { initializecomponent(); (int = 0; < 10; i++) { data d = new data(); d.dataval= "data " + (i + 1); datasource.add(d); } this.gridview.selecteditems.clear(); populategridview(); } private void populategridview() { foreach (data d in datasource) { d.dataval= false; } this.gridview.itemssource = datasource; list<data> selecteditems = new list<data>(); selecteditems.add(datasource[0]); this.gridview.select(selecteditems); } private void btn1_click(object sender, routedeventargs e) { populategridview(); } } public class data: inotifypropertychanged { public data() { dataval = string.empty; } public string dataval { get; set; } public bool changevalue { { return changevalue; } set { if (value != changevalue) { changevalue= value; if (applypropertychanged!= null) { applypropertychanged(this, new propertychangedeventargs("changevalue")); } } } } private bool changevalue; public event propertychangedeventhandler applypropertychanged; }
on clicking refresh button want checkbox unchecked not updating when setting changevalue false in populategridview. please suggest how can achieve this.
you need specify when ui shoul updated, in case onpropertychanged
<checkbox ischecked="{binding changevalue, mode=twoway, updatesourcetrigger="propertychanged"}" margin="3"/>
Comments
Post a Comment