2
我想將字符串值綁定到文本框,但僅限於選中複選框。所以,如果複選框被選中,我希望文本框顯示消息1,如果不是則顯示消息2.MVVM - 如果選中複選框,則綁定到複選框
這樣做的最佳方法是什麼?它是更好地在我的對象使用一個列表屬性,然後根據是否複選框被選中或不取決於該項目從我的名單<>顯示
或
是更好地只更新中該對象的屬性(此時的字符串類型)複選框被選中後,然後重新綁定?
我想將字符串值綁定到文本框,但僅限於選中複選框。所以,如果複選框被選中,我希望文本框顯示消息1,如果不是則顯示消息2.MVVM - 如果選中複選框,則綁定到複選框
這樣做的最佳方法是什麼?它是更好地在我的對象使用一個列表屬性,然後根據是否複選框被選中或不取決於該項目從我的名單<>顯示
或
是更好地只更新中該對象的屬性(此時的字符串類型)複選框被選中後,然後重新綁定?
以下是一種假定您瞭解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}" />
謝謝。這很棒。對不起,我的回覆延遲了。 – Dave
只是想指出複選框沒有屬性「IsSelected」,你應該設置屬性「IsChecked」。另外,請確保將屬性值包含在引號中。 – OrahSoft
OrahSoft,你需要了解DataBinding - 該對象的名稱是不可剝奪的 – MyDaftQuestions