0

我在 WPF 中有一个 ListView (GridView),我正在尝试根据http://msdn.microsoft.com/en-us/library/ms745786.aspx实现排序。就我而言,其中一列的单元格模板包含一个扩展器。现在,当我单击扩展器标题时,GridViewColumnHeader.Click 事件会触发。我该如何防止这种情况发生?

4

1 回答 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 回答