【问题标题】:WPF Listview Columnheader Click EventWPF Listview 列标题单击事件
【发布时间】:2010-09-15 10:41:16
【问题描述】:

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

【问题讨论】:

    标签: .net wpf listview grid columnheader


    【解决方案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 应该适用于任何控件。

    如果用户点击这个header的时候需要发生其他事情,你也可以在那个方法中处理。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-11-16
      • 1970-01-01
      • 2021-04-21
      • 2013-01-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多