7

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

做这个的最好方式是什么?在我的对象中使用 List 属性是否更好,然后取决于复选框是否被选中取决于显示 List<> 中的哪个项目

或者

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

4

1 回答 1

19

这是一种 MVVM 类型的方法,假设您了解 INotifyPropertyChanged(您需要!)。玩它,随时询问您遇到的任何问题。

虚拟机(视图模型代码)

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;}
}

五(查看 XAML)

<CheckBox IsChecked="{Binding IsSelected}" />
<TextBox Text="{Binding MyBoundMessage}" />
于 2012-06-16T16:58:56.687 回答