我有以下数据网格行的上下文菜单。
<ContextMenu x:Key="cm_rowMenu">
<!--ContextMenu For Row-->
<MenuItem Header="Edit Info."
Click="mnuEditInfo_Click"
/>
<MenuItem Header="Delete"
Click="mnuDeleteDevSoftware_Click"
/>
<MenuItem Header="Check In"
Click="mnuCheckIn_Click"
/>
</ContextMenu>
<Style x:Key="DefaultRowStyle" TargetType="{x:Type dg:DataGridRow}">
<Setter Property="ContextMenu" Value="{StaticResource cm_rowMenu}" />
</Style>
但是,我想做出以下改变:
我希望根据dataGrid.SelectedItem的属性启用/禁用菜单项。我该怎么做呢 ?
祝你好运, MadSeb
答案 0 :(得分:0)
使用命令:
<ContextMenu x:Key="cm_rowMenu" DataContext="{Binding PlacementTarget.DataContext, RelativeSource={RelativeSource Self}}">
<MenuItem Header="Edit Info." Command="{Binding EditCommand}"/>
</ContextMenu>
<Style x:Key="DefaultRowStyle" TargetType="{x:Type DataGridRow}">
<Setter Property="ContextMenu" Value="{StaticResource cm_rowMenu}" />
</Style>
行的模型:
public class ItemModel
{
public ItemModel()
{
this.EditCommand = new SimpleCommand
{
ExecuteDelegate = _ => MessageBox.Show("Execute"),
CanExecuteDelegate = _ => this.Id == 1
};
}
public int Id { get; set; }
public string Title { get; set; }
public ICommand EditCommand { get; set; }
}