問題タブ [inotifycollectionchanged]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
839 参照

c# - c# mvvm ネストされた ObservableCollection CollectionChanged NewStartingIndex >0

私はスタックオーバーフローが初めてです。一日中解決策を探していたので、ここで質問することにしました。

私は、WPF とデータバインディング/MVVM を使用するアプリケーションに取り組んでいます。クラスプログラムの一部であるネストされた ObservableCollection があります。どちらも INotifyPropertyChange を正しく実装しています。

コンストラクターで、ListPrograms という名前の Program タイプの ObservableColletion を作成し、データ サービスからプログラムのリストを入力します。それはすべてうまくいきます。また、バインドは正しく機能しています。マスター ビューでプログラムを選択すると、ネストされた価格のリストが詳細ビューに表示されます。OnPropertyChange は、SalesPrice の各プロパティに対して正しく発生します。

私の要件は、ユーザー入力時に、プログラムがネストされたリストのすべての項目で累積価格を再計算する必要があることです。これを正しく行う方法があります。

そのメソッドを実行するために、collectionchanged イベントをアタッチしようとしました。

///

私が抱えている問題は、コレクションの変更イベントが、実行時にコレクションに追加する新しい SalesPrices に対してのみ登録されることです。e.NewStartingIndex を確認すると、最初の SalesPrice レコードの数から始まります。(たとえば、最初のプログラムと 9 つの販売価格はその ObservableColletion であり、e.NewStartingIndex の値は 8 です)。実行時に新しいレコードをリストに追加すると、イベントが登録され、変更が通知されます。

これは、SalesPrices の完全なリストを含むデータサービスから Program オブジェクトを渡し、イベントが新しいアイテムのみを登録しているためだと思います。

何か案が?

フランク

0 投票する
1 に答える
102 参照

c# - CollectionChanged イベントを発生させたのはどのクラスですか?

いくつかのクラスによって操作される ObservableCollection があります。イベントを発生させたクラスを知りたい。私はすでに送信者オブジェクトを見て、NotifyCollectionChangedEventArgs のプロパティを調べましたが、何も見つかりませんでした。リセット、追加、または削除などのイベントの理由のみを取得します。私が探しているのはオリジネーターです。

これの目的は、コレクションを変更したクラスに応じて、コレクションが異なる方法で動作する必要があることです。

0 投票する
1 に答える
668 参照

c# - CollectionChanged イベントが静的な ObservableCollection で発生しない

あるクラスでは、ObservableCollection にオブジェクトを追加しています。別のクラスでは、追加したオブジェクトを処理してから、コレクションから削除しています。

これらの 2 つのクラスは相互に通信できないため、staticコレクションに行くことにしました (何らかの理由でクラス定義にしかアクセスできません)。

最初のクラスでは、すべての要素が適切に追加され (Countプロパティを確認しました)、2 番目のクラスではイベントをサブスクライブしCollectionChangedます。ただし、イベントは発生していません。キーワードのせいだと思いますstaticが、よくわかりません。

コードサンプルは次のとおりです。

0 投票する
2 に答える
330 参照

c# - オブジェクトのリストに項目を追加した後のリストボックス UI の更新

私はこのリストを手に入れました:

リストボックスの「ボードリスト」にバインドされています。新しいボードノートを追加した後、リストボックスのUIが毎回更新されるようになりました。「INotifyCollectionChanged」を使用する必要があることは既に知っていますが、これを行うには過度の負担がかかります。「ボードリスト」のコードは次のとおりです。