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. linq経由でXQueryを実行することはできますか?
- 7. CollectionChangedイベント
- 8. HTTP経由でファイルパイピングすることはできますか?
- 9. UWPのObservableCollectionて、CollectionChangedを上げ
- 10. .element:beforeまたは.element:afterのCSSプロパティをjavascript経由で設定することはできますか?
- 11. EntryPointNotFoundは、IObservable経由でイベントを購読するとき
- 12. 私のWebサービス経由でAuthorize.Netにカード取引を行うことはできますか?
- 13. ulとliの垂直スクロールをjQuery経由で行うことができますか?
- 14. .NET経由でSkyDriveに何かをアップロードすることはできますか?
- 15. リモートデスクトップ経由でプログラムを実行すると、クライアントコンピュータ上のプログラムを呼び出すことはできますか?
- 16. CollectionChangedイベントハンドラのObservableCollectionからアイテムを削除する
- 17. cron経由でサービスコマンドを実行することができません
- 18. どうすればG3 USBモデム経由でマイクロコントローラに接続できますか?その理由はインターネット経由で接続することです
- 19. onBlurイベントでTextBoxの日付チェックを行うことはできますか?
- 20. MVVM Light Messenger経由でトークンを送信することはできますか?
- 21. Flash/ActionScript経由でExcelファイルを作成することはできますか?
- 22. iphoneをbluetooth経由でプリンタに接続することはできますか?
- 23. javascript経由でボタンポストバックを変更することはできますか?
- 24. Javascript経由でブラウザにローカルタイムゾーンを設定することはできますか?
- 25. jQuery経由でシステムキーを無効にすることはできますか?
- 26. LAN経由でVisual Studioデバッグサーバーを表示することはできますか?
- 27. iOS - ローカルホスト経由でアプリ間で通信することはできますか?
- 28. Webサービス経由でリモートコンピュータで呼び出すことはできますか?
- 29. facebookイベントでグラフapi経由で緯度と経度を入力
- 30. JSON経由でメールを受け取ることはできますか?
クラスがsvcutilを使用して作成された場合私はクライアント側で読み取り専用を生成しますか?クライアント側で生成するのではなく、サービスからデータを受け取っている場合はどうなりますか?どこにイベントを付けるのですか? –
また、変更されているコレクションは別のコレクション内にネストされています。 –
私はそれを引数として独自の型を受け入れるコンストラクタを設定し、値をコピーして新しいObservableCollectionを作成し、指定したとおりにNotifyPropertyChanged呼び出しをCollectionChangedイベントにアタッチすることによって機能するようになりました。文字列が更新されます。私はこのようにしてコンストラクタを1回しか使用しないので、新しいコレクションを作成するのが安全です。これが最も効果的な方法であるかどうかはわかりませんが、効果があります。ありがとう、すべて同じ。 –