我填充上下文菜單動態,使用這樣的類來表示每個項目的水平: -WPF綁定 - 避免間接
public class ContextMenuItem : INotifyPropertyChanged
{
public string Header {get;set;}
public bool IsChecked {get;set;}
public ICommand Command {get;set;}
..etc..
}
注屬性實現標準INotifyPropertyChanged的東西,這是我」爲了節省空間,這裏離開了這裏。
我將不包含XAML - 上述屬性僅與其對應的MenuItem
綁定。
這是我的問題。我想要一個菜單項的IsChecked
狀態來「跟蹤」另一個模型的布爾屬性的值。 E.g: -
var menuItem = new ContextMenuItem
{
Caption = "Online?",
IsChecked = user.IsOnline
};
這顯然將無法正常工作 - 雖然菜單項的選中狀態將最初反映用戶的在線狀態,選中狀態不會改變,因爲user.IsOnline
變化。
一種方法是訂閱user
對象的PropertyChanged事件,並在IsOnline
更改時更改IsChecked
,但這感覺有些複雜。有沒有更優雅的解決方案?
作品一種享受 - 非常感謝! –