我正在寻找一种方法,以使触发器的数据,显示上下文菜单时,点击标题,其中有DisplayIndex大于2。
这就是我现在拥有的:
<Style TargetType="{x:Type DataGridColumnHeader}">
<Style.Triggers>
<Trigger Property="DisplayIndex" Value="2">
<Setter Property="ContextMenu"
Value="{StaticResource ColumnHeaderContextMenu1}" />
</Trigger>
</Style.Triggers>
</Style>有办法做到这一点吗?我需要的原因是用户会动态地添加列,所以他需要(有时)删除它们。
发布于 2017-11-17 09:40:06
用另一种方式处理这件事。该代码可能有用:
xaml:
<DataGrid.ColumnHeaderStyle>
<Style TargetType="DataGridColumnHeader">
<EventSetter Event="MouseRightButtonDown" Handler="DataGridColumnHeader_MouseRightButtonDown" />
</Style>
</DataGrid.ColumnHeaderStyle>代码背后:
private void DataGridColumnHeader_MouseRightButtonDown(object sender, MouseButtonEventArgs e)
{
if (((DataGridColumnHeader)sender).DisplayIndex < 2)
{
return;
}
var x = DataContext as BrygadzistaViewModel;
x.ColumnHeaderToDelete = ((DataGridColumnHeader)sender).Content.ToString();
ContextMenu cm = new ContextMenu();
MenuItem mi = new MenuItem();
mi.Header = "Usuń";
mi.Command = x.DeleteDay;
cm.Items.Add(mi);
cm.IsOpen = true;
}想知道是否有更好的方法来做到这一点;)
https://stackoverflow.com/questions/47344974
复制相似问题