我在WPF中有一个ListView (GridView),我正在尝试根据http://msdn.microsoft.com/en-us/library/ms745786.aspx实现排序。在我的例子中,其中一列的单元格模板包含一个Expander。现在,当我单击扩展器标题时,将触发GridViewColumnHeader.Click事件。如何防止这种情况发生?
发布于 2010-09-15 19:31:51
如果什么都不需要发生,用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应该适用于任何控件。
如果在用户单击此标头时需要发生其他事情,您也可以在该方法中处理它。
如果您需要以不同的方式处理这些情况,您可以检查发送者以查看用户单击的位置(在扩展器上或在网格视图标题上)。如果发送者是扩展器,则取消它。如果发送者是网格视图标题,则让排序继续进行。
https://stackoverflow.com/questions/3716819
复制相似问题