Data binding MVVM-如果选中复选框,则选中绑定到复选框

Data binding MVVM-如果选中复选框,则选中绑定到复选框,data-binding,mvvm,Data Binding,Mvvm,我想将字符串值绑定到文本框,但前提是选中复选框。因此,如果选中该复选框,我希望文本框显示消息1,如果未选中,则显示消息2 最好的方法是什么?在“我的对象”中使用“列表”属性是否更好取决于是否选中该复选框取决于显示“我的列表”中的哪个项目 或 选中复选框后更新对象的属性(这次是字符串类型)然后重新绑定是否更好?这里有一种MVVM类型的方法,假设您理解INotifyPropertyChanged(您需要!)。玩玩它,你可以随意询问任何你遇到的问题 VM(视图模型代码) 公共类MyViewModel:

我想将字符串值绑定到文本框,但前提是选中复选框。因此,如果选中该复选框,我希望文本框显示消息1,如果未选中,则显示消息2

最好的方法是什么?在“我的对象”中使用“列表”属性是否更好取决于是否选中该复选框取决于显示“我的列表”中的哪个项目


选中复选框后更新对象的属性(这次是字符串类型)然后重新绑定是否更好?

这里有一种MVVM类型的方法,假设您理解INotifyPropertyChanged(您需要!)。玩玩它,你可以随意询问任何你遇到的问题

VM(视图模型代码)
公共类MyViewModel:INotifyPropertyChanged{
常量字符串Msg1=“blah 1”;
常量字符串Msg2=“blah 2”;
私立学校当选;
公选学校{
获取{return}isSelected;}
设置{
if(_isSelected==value)返回;
_isSelected=值;
MyBoundMessage=_isSelected?Msg1:Msg2;
NotifyPropertyChanged(()=>IsSelected);
NotifyPropertyChanged(()=>MyBoundMessage);
}
}
公共字符串MyBoundMessage{get;set;}
}
V(查看XAML)



谢谢。这太棒了。很抱歉我的回复延迟了。我只是想指出复选框没有属性“IsSelected”,您应该设置属性“IsChecked”。另外,请确保将属性值括起来。OrahSoft,您需要了解数据绑定-对象的名称不相关如果(\u isSelected=value)是
如果(\u isSelected=value)
?我假设它应该是一个比较而不是一个赋值?如果这是针对复选框组成的datagrid中的复选框,那么绑定到
INotifyPropertyChanged
是否会产生一些无法收集的垃圾,因为您从未将其解钩?如果不是的话,哪里是一个好地方,可以通过集合进行迭代来解除钩子?
<CheckBox IsChecked="{Binding IsSelected}" />
<TextBox Text="{Binding MyBoundMessage}" />