我在 WPF 中有一个 ListView (GridView),我正在尝试根据http://msdn.microsoft.com/en-us/library/ms745786.aspx实现排序。就我而言,其中一列的单元格模板包含一个扩展器。现在,当我单击扩展器标题时,GridViewColumnHeader.Click 事件会触发。我该如何防止这种情况发生?
问问题
2452 次
1 回答
1
如果不需要发生任何事情,请使用 取消它e.Cancel = true
。我的一个项目中有类似的东西,我不希望用户对列重新排序:
private void DataGrid_ColumnReordering(object sender, Microsoft.Windows.Controls.DataGridColumnReorderingEventArgs e)
{
e.Cancel = true;
}
然后,在 XAML 中,我有:
<toolkit:DataGrid ItemsSource="{Binding JournalItems}"
AutoGenerateColumns="True"
ColumnReordering="DataGrid_ColumnReordering">
这是 WPF Toolkit 数据网格,但e.Cancel = true
应该适用于任何控件。
如果用户点击这个标题时需要发生其他事情,你也可以在那个方法中处理它。
如果您需要以不同方式处理这些情况,您可以检查发件人以查看用户单击的位置(在扩展器或 gridview 标题上)。如果发送者是扩展器,取消它。如果发件人是gridview标头,让排序继续。
于 2010-09-15T11:31:50.977 回答