WPF Listview:列重新排序事件?

Tal*_*ode 3 wpf listview

当用户更改订单时,我需要同步两个ListViews事件的列顺序.但似乎没有Column重新排序事件.

目前我刚刚做了一个AllowColumnReorder ="False",但这不是一个永久的解决方案.在搜索网络时,我发现许多人有同样的问题,但没有解决方案.可以做些什么?

Tho*_*que 11

我不知道它的工作原理,但你很可能采取的事实的优点GridView.ColumnsObservableCollection:你可以订阅该CollectionChanged事件并在处理案件Action=Move

GridView gridView = (GridView)listView.View;
gridView.Columns.CollectionChanged += gridView_CollectionChanged;

private void gridView_CollectionChanged(object sender, CollectionChangedEventArgs e)
{
    if (e.Action == NotifyCollectionChangedAction.Move)
    {
        string msg = string.Format("Column moved from position {0} to position {1}", e.OldIndex, e.NewIndex);
        MessageBox.Show(msg);
    }
}
Run Code Online (Sandbox Code Playgroud)

  • 到目前为止工作正常.语法改变了一点.使用NotifyCollectionChangedEventArgs,e.OldStartingIndex和e.NewStartingIndex (2认同)