是否可以在后面的代码中执行以下操作(在数据网格中设置标题双击事件)?如果是,怎么样?我搜索的任何内容都没有显示可以访问数据网格标题的样式!
<DataGrid ...>
<DataGrid.Resources>
<Style TargetType="DataGridColumnHeader">
<EventSetter Event="MouseDoubleClick" Handler="OnTableDoubleClick" />
</Style>
</DataGrid.Resources>
...
非常感谢。
修改
在其他尝试之后,我也在从DataGrid派生的CustomDataGrid类的构造函数中尝试了这个:
Style _style = new Style(typeof(DataGridColumnHeader));
_style.BasedOn = Application.Current.Resources["DataGridColumnHeaderStyle"] as Style;
_style.Setters.Add(new EventSetter(MouseDoubleClickEvent, new MouseButtonEventHandler(OnTableDoubleClick)));
this.ColumnHeaderStyle = _style;
如果我很清楚我做了什么,那么应该将双击事件添加到标题样式中,但实际上它什么都不做,这意味着在运行时不会调用处理程序。
答案 0 :(得分:1)
您需要在DataGridRowHeader
上声明样式:
<DataGrid>
<DataGrid.Resources>
<Style TargetType="DataGridRowHeader">
<EventSetter Event="MouseDoubleClick"
Handler="DataGridRow_MouseDoubleClick"/>
</Style>
</DataGrid.Resources>
</DataGrid>
如果您正在谈论列标题。将DataGridRowHeader
替换为DataGridColumnHeader
。