我的模板是这样声明的-
<DataGrid.Resources>
<ContextMenu x:Key="RowMenu" DataContext="{Binding PlacementTarget.DataContext, RelativeSource={RelativeSource Self}}">
<MenuItem Header="Remove" Command="{Binding Cancel}" />
</ContextMenu>
</DataGrid.Resources>
我正在使用行样式应用模板 -
<DataGrid.RowStyle>
<Style TargetType="DataGridRow">
<Setter Property="ContextMenu" Value="{StaticResource RowMenu}" />
</Style>
</DataGrid.RowStyle>
菜单显示正常
但是当单击上下文菜单项时,该命令(在 ItemListViewModel 上)不执行
public class ItemListViewModel : INotifyPropertyChanged
{
public void Cancel()
{
MessageBox.Show("Cancel test");
}
...
}
我的绑定工作正常,因为我可以做这样的事情 -
foreach (ItemListViewModel ul in mylist.SelectedItems)
MessageBox.Show(item.FullDescription);
我整晚都在试图弄清楚这一点。今天刚开始使用WPF。
请有人告诉我哪里出错了