2010-09-15 75 views

回答

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标题,则继续排序。