【发布时间】:2013-10-14 17:42:17
【问题描述】:
我在DataGrid 上有一个ContextMenu,我想根据右键单击的网格中的项目将MenuItem 标记为选中或未选中。
因此,我将MenuItem 上的“IsChecked”属性绑定到我的 ViewModel 上的一个属性,并且我的 VM 根据右键单击的项目将此属性设置为 true 或 false。
但是,我的ContextMenu 项目的“IsChecked”属性仅被评估一次。每次我右键单击一个项目时都不会对其进行评估。
对于所有后续的右键单击,将保留第一次执行的评估。
属性“IsCheckedonVM”的 getter 未被触发。
<MenuItem Command= IsCheckable="True"
IsChecked="{Binding IsCheckedonVM}"
Header = ".."
</MenuItem>
在虚拟机中:
public bool IsCheckedonVM
{
get
{
return selectedItem.IsChecked;
}
set
{
selecteditem.IsChecked = value;
OnPropertyChanged("IsCheckedonVM");
}
如何让我的MenuItem 上的IsChecked 属性在每次右键单击时都进行评估,以便每次都获取IsCheckedonVM?
【问题讨论】:
-
尝试根据网格的
SelectedItem将命令绑定到您的 DataGrids right click event and executed dedicated logic to determineIsCheckedonVM` 值...
标签: wpf binding menuitem ischecked