ObservableCollectionをクラス内のプロパティとして持ちますが、そのCollectionChangedイベントをサブスクライブし、ObservableCollectionプロパティのOnPropertyChangedを呼び出して、コレクションへのUIバインディングを更新できますか? -ObservableCollectionプロパティのNotifyChangedをCollectionChangedイベント経由で行うことはできますか?
答えて
コレクションにバインドしてコンバーターを使用する代わりに、読み取り専用ItemNamesプロパティを公開できます。 Items.CollectionChangedイベントハンドラでは、私は、グリッドのDataColumnの中にそのプロパティを結合し、カンマ区切りの文字列に変換することのObservableCollectionをIValueConverterを使用していItemNamesプロパティ
public class ViewModel
{
public ViewModel()
{
Items = new ObservableCollection<Item>();
Items.CollectionChanged += (o, e) => NotifyPropertyChanged("ItemNames");
}
public ObservableCollection<Item> Items { get; private set; }
public string ItemNames { get { return String.Join(",", Items); } }
}
はい、通常はオーバーヘッドのためにそのようなことをしたくないでしょう。 ItemsSource
のコントロールを使用する場合、すべてを再作成せずにCollectionChanged
を処理する方法を知っています。
のためのPropertyChangedイベントを発生させます。私は間違いなくこれが私がフィルタリングすることができないように行く方法ではないことを知っている。私はこれが私のクラスの読み取り専用プロパティとして行うことができます知っているどのように私は読み取り専用の文字列プロパティは、変更されました? –
@ChristopherLeach:CollectionChangedイベントにサブスクライブし、その文字列を保持するプロパティのPropertyChangedイベントを発生させるだけです。 –
WCFサービスからクラスが生成されるというヒックアップのみです。私は、読み取り専用の文字列プロパティを持つ部分クラスのクライアント側を生成しようとしましたが、CollectionChangedイベントハンドラをアタッチしていますが、これはサービス全体ではシリアル化されません。新しいクラスでWCFクラスを継承し、そこにイベントをリンクする必要がありますか? –
- 1. WPF - データバインディングObservableCollection CollectionChangedイベント?
- 2. ObservableCollection <T> CollectionChangedイベント
- 3. C#:ObservableCollection - 汎用の "CollectionChanged"イベントはありませんか?
- 4. INotifyCollectionChanged/ObservableCollectionのコードでCollectionChangedイベントを発生させるには?
- 5. ObservableCollection CollectionChangedイベントが発生していないようです - なぜですか?
- 6. CollectionChangedイベント
- 7. UWPのObservableCollectionて、CollectionChangedを上げ
- 8. linq経由でXQueryを実行することはできますか?
- 9. cli経由でttcnを実行することはできますか?
- 10. HTTP経由でファイルパイピングすることはできますか?
- 11. ObservableCollectionのCollectionChangedが発砲しない
- 12. .element:beforeまたは.element:afterのCSSプロパティをjavascript経由で設定することはできますか?
- 13. Chain CollectionChangedイベント
- 14. EntryPointNotFoundは、IObservable経由でイベントを購読するとき
- 15. 拡張機能のSwift 4 KeyPaths経由でUIViewのプロパティを設定することはできますか?
- 16. CollectionChangedイベントハンドラのObservableCollectionからアイテムを削除する
- 17. 私のWebサービス経由でAuthorize.Netにカード取引を行うことはできますか?
- 18. ulとliの垂直スクロールをjQuery経由で行うことができますか?
- 19. .NET経由でSkyDriveに何かをアップロードすることはできますか?
- 20. CollectionChangedイベントでNotifyCollectionChangedActionをチェックする必要がありますか?
- 21. リモートデスクトップ経由でプログラムを実行すると、クライアントコンピュータ上のプログラムを呼び出すことはできますか?
- 22. ImageViewをGSON経由で別のアクティビティに送ることはできますか?
- 23. phpはjson経由でrubyと話すことができますか?
- 24. どうすればG3 USBモデム経由でマイクロコントローラに接続できますか?その理由はインターネット経由で接続することです
- 25. onBlurイベントでTextBoxの日付チェックを行うことはできますか?
- 26. Arduino:USB経由でカメラからイベントをキャッチ
- 27. cron経由でサービスコマンドを実行することができません
- 28. JPA(JAVA)経由でストアドファンクションを呼び出すことはできますか?
- 29. APIKITコンソール経由でRAMLファイルを共有することはできますか?
- 30. ChromeウェブストアAPI:API経由でカテゴリを設定することはできますか?
クラスがsvcutilを使用して作成された場合私はクライアント側で読み取り専用を生成しますか?クライアント側で生成するのではなく、サービスからデータを受け取っている場合はどうなりますか?どこにイベントを付けるのですか? –
また、変更されているコレクションは別のコレクション内にネストされています。 –
私はそれを引数として独自の型を受け入れるコンストラクタを設定し、値をコピーして新しいObservableCollectionを作成し、指定したとおりにNotifyPropertyChanged呼び出しをCollectionChangedイベントにアタッチすることによって機能するようになりました。文字列が更新されます。私はこのようにしてコンストラクタを1回しか使用しないので、新しいコレクションを作成するのが安全です。これが最も効果的な方法であるかどうかはわかりませんが、効果があります。ありがとう、すべて同じ。 –