2
我需要在用户更改顺序时同步两个ListViews事件的列顺序。但似乎没有列重新排序事件。WPF Listview:列重新排序事件?
目前,我刚刚做了一个AllowsColumnReorder =“假”,但这不是一个永久的解决方案。在搜索网络时,我发现许多人遇到了同样的问题,但没有解决方案。可以做什么?
我需要在用户更改顺序时同步两个ListViews事件的列顺序。但似乎没有列重新排序事件。WPF Listview:列重新排序事件?
目前,我刚刚做了一个AllowsColumnReorder =“假”,但这不是一个永久的解决方案。在搜索网络时,我发现许多人遇到了同样的问题,但没有解决方案。可以做什么?
我不知道它的工作原理,但你很可能采取的事实,即GridView.Columns
是ObservableCollection
:你可以订阅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);
}
}
工作正常至今。语法有所改变。使用NotifyCollectionChangedEventArgs,e.OldStartingIndex和e.NewStartingIndex – TalkingCode 2010-02-19 13:16:24
@TalkingCode谢谢!此更改对于在.NET4中使用此代码是必需的。 – 2016-04-07 13:25:51