私はいくつかの方向を見ています。並べ替え可能なオブジェクトコレクション
私はアプリケーションで開いているウィンドウのリストとしてメニュー項目にバインドしているので、アイテムがこのコレクションから追加/削除されたときに通知できるオブジェクトのソート可能なコレクションが必要です。
良いコレクションタイプ、つまりList <>、ObservableCollectionなどとアドバイスしてください。また、コレクションの並べ替えについてはどうすればよいですか。
多くの方々のおかげです。
私はいくつかの方向を見ています。並べ替え可能なオブジェクトコレクション
私はアプリケーションで開いているウィンドウのリストとしてメニュー項目にバインドしているので、アイテムがこのコレクションから追加/削除されたときに通知できるオブジェクトのソート可能なコレクションが必要です。
良いコレクションタイプ、つまりList <>、ObservableCollectionなどとアドバイスしてください。また、コレクションの並べ替えについてはどうすればよいですか。
多くの方々のおかげです。
すべての回答ありがとうございます。
メニュー項目にバインドするときにコレクションを表示目的で並べ替えるだけで済むようになりました。
この場合、次のコードを使用して、メニュー項目parent(miPanels)を使用してパネルオブジェクトのリストを並べ替えることができました。
miPanels.Items.SortDescriptions.Add(new SortDescription("PanelName", ListSortDirection.Ascending));
もう一度見て、対応に時間がかかったすべての人々に感謝(PanelNameは、オブジェクトのプロパティのうちの1つです)。
This is sortable observable collection
And here is another implementation - 私は(私はextend itに持っていたので、それはまた、IListインターフェイスを実装し、XAMLでコレクションを定義するために使用することができます)完璧に動作しますが、私のプロジェクトでは、このいずれかを使用します。
System.Windows.Forms.BindingSource
と一緒にSystem.Windows.Forms.BindingNavigator
を試しましたか?これらは、必要なように聞こえるものを正確に行います。オブジェクトのコレクションをナビゲート可能なメニューにバインドする必要があります。
ソートの場合、BindingSourceのアイテムのリストを取得し、BindingSourceをクリアし、リストをソートして、ソートされたアイテムを再度BindingSourceに追加するだけです。
役立つ例については、これらのリンクを参照してください:あなたはCollectionView
であなたのObservableCollectionを試してみて、包むことができ
、通知は次のようになりますプロパガあなたはアイテムを並べ替え、フィルタリングし、グループ化することができます。
ソートでは、変更が永続的である必要がある場合は問題が発生する可能性があるソースコレクションは変更されないことに注意してください。次に昨日のみ初めてクラスを使用しました。何らかの形でソートをソースに適用することができます。