xaml - RadioButton not showing as "Checked" when bound value is true -
in project setting bool property true when constructing viewmodel.
in view, have radiobutton bound value of property. first time open view, radiobutton "checked" (perfect, want!).
however, if close , re-open view, radiobutton not "checked", despite bound property having value of 'true'. in constructor setting 'staggeredmode' true, setter being called 3 times (firstly, value = true; secondly, value = false; thirdly, value = true)
any appreciated!
xaml:
<radiobutton groupname="appointmentstart" content="staggered" ischecked="{binding staggeredmode, mode=twoway}" verticalalignment="top" horizontalalignment="left" margin="310,247,0,0" /> c#:
private bool staggeredmode; public bool staggeredmode { { return staggeredmode; } set { staggeredmode = value; } }
your staggeredmode property should observable view can notified property changes viewmodel.
you can implement inotifypropertychanged or use 1 of existing implementations this, this or this.
here basic implementation of inotifypropertychanged interface:
public abstract class observableobject : inotifypropertychanged { public virtual void raisepropertychanged(string propertyname) { onpropertychanged(propertyname); } public event propertychangedeventhandler propertychanged; protected virtual void onpropertychanged(string propertyname) { propertychangedeventhandler handler = this.propertychanged; if (handler != null) { var e = new propertychangedeventargs(propertyname); handler(this, e); } } } then derive viewmodel observableobject , raise onpropertychanged event every time property value has been changed:
public class myviewmodel : observableobject { ... private bool staggeredmode; public bool staggeredmode { { return staggeredmode; } set { staggeredmode = value; onpropertychanged("staggeredmode"); } } ... }
Comments
Post a Comment