2009-09-04 4 views
2

ユーザーが注文を変更したときに2つのListViewイベントの列の順序を同期させる必要があります。しかし、列の並べ替えイベントがないようです。WPF Listview:列の並べ替えイベントですか?

私はちょうどAllowsColumnReorder = "False"でしたが、それは永続的な解決策ではありません。ネットを検索している間、私は同じ問題を抱えている多くの人々を見つけましたが、解決策はありません何ができますか?

答えて

9

私はそれが動作わからないんだけど、あなたはおそらくGridView.ColumnsObservableCollectionであるという事実を利用することができます:あなたはCollectionChangedイベントをサブスクライブして= MoveAction

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でこのコードを使用するために必要でした。 –