問題タブ [listchanged]
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.
wpf - DataGrid のオブジェクトが BindingList の ListChanged イベントを発生させない
Stackoverflow に関するほとんどすべての質問を読みましたがDataGrid, BindingList<T>
、ListChanged
まだ答えがありません。
というオブジェクトがありInvoice : INotifyPropertyChanged
、BindingList<InvoiceLine> : INotifyPropertyChanged
いくつかのオブジェクトで構成される がありInvoiceLine : INotifyPropertyChanged
ます。
にDataGrid
バインドされているでイベントBindableList<InvoiceLine>
のプロパティの 1 つを変更するとInvoiceLine
、PropertyChanged
イベントが発生しますが、 でListChanged
イベントが発生しませんBindableList<InvoiceLine>
。
InvoiceLines は次のように初期化されます。
bindinglist - BindingList ListChanged イベント
バインディング リストで ListChanged イベントをサブスクライブしています。リストが変更された場合 (アイテムの追加/削除)、内部リストを更新します。内部リストには、元のリストの項目に 1 対 1 で対応するオブジェクトが含まれています。アイテムの順序は異なる場合があります。
ドキュメントに基づいて、イベントが発生したとき、ListChangedEventArgs.ListChangedType は、ItemAdded、ItemDeleted、Reset、および ItemChanged のいずれかになります。ListChangedType は、リスト内の項目が変更された場合 (項目が別の項目に置き換えられた場合、またはそのプロパティの 1 つが変更された場合) に ItemChanged になります。
これらのケースをどのように区別して、リスト内の項目が別の項目に置き換えられた場合に内部リストをリロードできますが、それがプロパティの変更である場合は何もしませんか?
これを達成するためのより良い方法はありますか?
c# - ソース テーブルに行を追加するときに DataView.ListChanged イベントが発生しない
テーブルに新しい行を追加すると、ListChanged イベントが発生しない場合があります。奇妙なことに、行の更新と削除によってイベントが発生します。
refresh - RaiseListChangedEvent プロパティを複数回設定する際のパフォーマンスの問題
コントロールをリフレッシュする前に、バインディングソースの RaiseListChangedEvent プロパティを false に設定し、リフレッシュ後に再度 true に設定し、ResetBindings を false に設定します。
シナリオが次のようになるとどうなりますか。
パフォーマンスの問題が発生しますか?
javafx-8 - ControlsFX PopOver および CheckListView で JavaFX ListChangedListeners が起動しない
汎用 Java クラスを作成して、チェックを外したりチェックしたりできるフィルター項目のリストを表示し、結果の選択をコントローラーに渡して、表示用のプライマリ オブジェクトのコレクションをフィルター処理します。2 つの ControlsFX コントロールを使用しています。PopOver
にはフィルタ リストを格納し、 にCheckListView
は個々の項目を表示および制御します。
フローは、フィルターPopOver
クラスがコントローラーのコンストラクターでインスタンス化され、ソース データが表示されるたびに再読み込みされるというものです。
表面的には、コードは機能しているように見えます。ソース項目が追加され、チェックとチェック解除が機能し、チェックされた項目のリスト内の項目数が正しくなります。ただし、ソース データとチェックされた項目のリストの両方の監視可能リストにリスナーを追加しましたが、どちらも起動されません。
リスナーをインラインで個別のメソッドとして (例のように) 記述してみました。また、従来onChanged
のスタイルとラムダ スタイルで記述してみました。どちらも違いはありませんでした。CheckListView
をペインのノードとして使用するだけで、ほぼ同じコードを使用してみました。これはまさに期待どおりに機能しました。
また、ControlsFX の問題ログを確認しましたが、直接関連するものは何も見つかりませんでした (使用していたコードが問題ないように見えることを確認したことを除いて)。
これは Filter クラスです。
そして、これはテスト スタブです。