我有一個ContextMenu
對DataGrid
和我想標記MenuItem
選中或取消選中,取決於網格中右鍵單擊的項目。重新計算MenuItem.IsChecked
因此,我將MenuItem
上的'IsChecked'屬性綁定到ViewModel上的屬性,並且此屬性由我的VM根據右鍵單擊的項目設置爲true或false。
但是,事實證明,我的ContextMenu
項目的'IsChecked'屬性僅評估一次。每次我點擊一個項目時都不會評估它。
對於隨後的所有右鍵單擊,保留第一次執行的評估。
屬性'IsCheckedonVM'的getter未被觸發。
<MenuItem Command= IsCheckable="True"
IsChecked="{Binding IsCheckedonVM}"
Header = ".."
</MenuItem>
在VM:
public bool IsCheckedonVM
{
get
{
return selectedItem.IsChecked;
}
set
{
selecteditem.IsChecked = value;
OnPropertyChanged("IsCheckedonVM");
}
我怎樣才能讓我的MenuItem
的IsChecked
屬性進行評估每次它的RightClicked,使IsCheckedonVM
是牽強每次?
嘗試綁定命令到您的DataGrid的右鍵單擊事件並執行專用邏輯根據網格的SelectedItem確定'IsCheckedonVM'的值... –