2009-09-04 7 views
2

사용자가 주문을 변경하면 두 개의 ListView 이벤트의 열 순서를 동기화해야합니다. 그러나 열 순서 변경 이벤트가없는 것 같습니다.WPF Listview : 열 순서 변경 이벤트?

잠시 동안 AllowsColumnReorder = "False"로 설정했지만 영구적 인 해결책은 아닙니다. 그물을 검색하는 동안 동일한 문제가 있지만 해결 방법이없는 많은 사람들을 발견했습니다. 무엇을 할 수 있습니까?

답변

9

나는 그것이 작동 모르겠지만, 당신은 아마 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); 
    } 
} 
+2

작품 잘 지금까지. 구문이 조금 바뀌 었습니다. NotifyCollectionChangedEventArgs, e.OldStartingIndex 및 e.NewStartingIndex 사용 – TalkingCode

+0

@TalkingCode 감사합니다! 이 변경은 .NET4에서이 코드를 사용하는 데 필요했습니다. –