1

本当に簡単な質問があります。

頻繁に更新されるいくつかのViewModel(INotifyPropertyChangedを使用)のObservableCollectionを取得しました。

次に、データを次のようにNewViewModelの新しいObservableCollectionに整形する必要があります。

        var query = from o in _orders
                select new ComplexRowViewModel()
                           {Isin = o.Isin,
                            Name = o.Isin,
                            GermanSymbol = o.Exchange,
                            PrimarySymbol = o.State.ToString()};
        GridData = query;

しかしもちろん、それは機能しません。ObticsまたはCLINQを使用する場合、新しいアイテムが最初のコレクションに入ると新しいコレクションが更新されますが、既存のアイテムのプロパティが変更されても、新しいコレクションでは更新されません。

それで、何かアイデアはありますか?

4

3 に答える 3

1

ObticsやCLINQはわかりませんが、ObservableCollectionの通常の動作のように聞こえます。含まれている単一のアイテムのプロパティの変更にはまったく反応しません。したがって、ObservableCollectionの独自の実装を作成する必要があります。1つの例を次に示します。コレクション内の要素の変更も監視するObservableCollection

于 2012-07-05T13:35:42.533 に答える
0

INotifyPropertyChangeあなたもから実装する必要がありNewViewModelます。このサブスクライブのそれぞれで、ソースオーダーのINotifyPropertychangeを実行し、新しいイベントを適切に発生させます。

于 2012-07-05T13:32:33.973 に答える
0

ObservableComputationsライブラリを試すこともできます。そのライブラリの使用:

        var query = _orders.Selecting(o => 
                new ComplexRowViewModel()
                           {Isin = o.Isin,
                            Name = o.Isin,
                            GermanSymbol = o.Exchange,
                            PrimarySymbol = o.State.ToString()};
        GridData = query;

上記のコードを機能させるには、_ordersは型でObservableCollectionあり、Orderクラス(_ordersの要素の型であることをお勧めしますObservableCollection)を実装する必要がありますINotifyPropertyChanged

于 2019-11-21T12:24:33.010 に答える