Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net WPF Listview列标题单击事件_.net_Wpf_Listview_Grid_Columnheader - Fatal编程技术网

.net WPF Listview列标题单击事件

.net WPF Listview列标题单击事件,.net,wpf,listview,grid,columnheader,.net,Wpf,Listview,Grid,Columnheader,我在WPF中有一个ListView(GridView),我正试图根据它来实现排序。在我的例子中,其中一列的celltemplate包含一个扩展器。现在,当我单击expander标题时,GridViewColumnHeader.click事件触发。如何防止这种情况发生?如果不需要发生任何事情,请使用e.cancel=true取消它。我在我的一个项目中有类似的内容,我不希望用户对列重新排序: private void DataGrid_ColumnReordering(object sender,

我在WPF中有一个ListView(GridView),我正试图根据它来实现排序。在我的例子中,其中一列的celltemplate包含一个扩展器。现在,当我单击expander标题时,GridViewColumnHeader.click事件触发。如何防止这种情况发生?

如果不需要发生任何事情,请使用
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工具包datagrid,但是
e.Cancel=true
应该适用于任何控件

如果用户单击此标题时需要发生其他事情,也可以使用该方法处理

如果需要以不同的方式处理这些情况,您可以检查发送者以查看用户单击的位置(在扩展器或gridview标题上)。如果发送方是扩展器,请取消它。如果发送方是gridview标头,则继续排序