我要绑定一个字符串值到一个文本框,但仅当复选框被选中。 所以,如果复选框被选中我想要的文本框显示消息1,如果没有则显示消息2。
做这个的最好方式是什么? 它是更好地在我的对象使用一个列表属性,然后根据是否复选框被选中或不取决于该项目从我的列表中<>显示
要么
岂不是更好选中该复选框后,只需更新对象的属性(此时字符串类型),然后重新绑定?
我要绑定一个字符串值到一个文本框,但仅当复选框被选中。 所以,如果复选框被选中我想要的文本框显示消息1,如果没有则显示消息2。
做这个的最好方式是什么? 它是更好地在我的对象使用一个列表属性,然后根据是否复选框被选中或不取决于该项目从我的列表中<>显示
要么
岂不是更好选中该复选框后,只需更新对象的属性(此时字符串类型),然后重新绑定?
这里是假设你了解INotifyPropertyChanged的方法的一个MVVM型(你需要!)。 用它播放和随意问任何你卡住上。
public class MyViewModel : INotifyPropertyChanged {
const string Msg1 = "blah 1";
const string Msg2 = "blah 2";
private bool _isSelected;
public bool IsSelected{
get { return _isSelected; }
set {
if(_isSelected == value) return;
_isSelected = value;
MyBoundMessage = _isSelected ? Msg1 : Msg2;
NotifyPropertyChanged(()=> IsSelected);
NotifyPropertyChanged(()=> MyBoundMessage);
}
}
public string MyBoundMessage {get;set;}
}
V(图XAML)
<CheckBox IsChecked="{Binding IsSelected}" />
<TextBox Text="{Binding MyBoundMessage}" />