WPFでは、CompositeCollectionのビューの標準的な並べ替えやフィルタリングの動作がサポートされていないため、この問題を解決するためのベストプラクティスは何でしょうか。複合コレクションのソート
異なるタイプのオブジェクトコレクションが2つ以上あります。それらを1つのソート可能でフィルタリング可能なコレクションにまとめたい(ソートまたはフィルタを手動で実装する必要があります)。
私が考えてきた手法の1つは、コレクションをソートする必要があるオブジェクトや各タイプのオブジェクトインスタンスなど、いくつかのコアプロパティを持つ新しいオブジェクトコレクションを作成することです。
class MyCompositeObject
{
enum ObjectType;
DateTime CreatedDate;
string SomeAttribute;
myObjectType1 Obj1;
myObjectType2 Obj2;
{
class MyCompositeObjects : List<MyCompositeObject> { }
次に、2つのオブジェクトコレクションをループして新しい複合コレクションを構築します。明らかに、これはやや強引な方法ですが、うまくいくでしょう。私は、新しいコンポジットオブジェクトコレクションのデフォルトのビューソートとフィルタリングの動作をすべて取得し、そのコンポジットアイテムに実際に格納されているタイプに応じて、リストアイテムを適切に表示するためにデータテンプレートを配置できます。
これをより洗練された方法で行うにはどのような方法がありますか?
lubos:ありがとうございました - 私もオブジェクトにLINQを考慮しましたが、私のリストにオブジェクトを表示する必要があります型付きのデータテンプレートの柔軟性の損失があります。 –