問題タブ [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.
c# - リストの変更を複製する
アイテムのリストがあるとします。
どこかからサーバーが私のアプリケーションに要素B
が削除されたことを伝えますが、正確な変更の詳細ではなく、新しいリスト全体のみを提供します。WinRTListView
はアイテム内のアイテムの追加、削除、および移動を自動的にアニメーション化するため、バッキング リストを更新してINotifyCollectionChanged
Reset-- イベントを呼び出すことは避けたいと思います。代わりに、ローカル リストをサーバーから取得したリストに変換するために必要な手順を計算したいと考えています。(レーベンシュタイン距離のようなもので、歩数ではなく、歩数そのもの)
例えば:
どうすればいいですか?
編集:私の場合、順序が重要です。
c# - INotifyCollectionChanged はどこにありますか?
MS の ObservableConcurrentDictionary サンプルを使用しようとしていますが、まったく予期しない問題に遭遇しました。
INotifyCollectionChanged インターフェイスが System.Collections.Specialized 名前空間にありません。プロジェクトは WinForms で、.NET 3.5 および 3.5 Client Profile をターゲットにしようとしましたが、MSDN はサポートされていると言っていますが、役に立ちませんでした。コレクションを含むアセンブリには何も見つからないため、参照も欠落していないと思います。Google 検索は決定的ではありませんでした。このような問題を抱えているのは、全世界で私だけのようです。
このことの一体何が問題なのですか?
これがスクリーンショットです。System.Collections.Specialized が未使用としてマークされていることに注意してください。
c# - 含まれている UIViewController が 2 回目に初期化されると、UITableView から ObservableCollection へのバインディングが壊れる
ObservableCollection を UITableView にバインドするために mvvmcross と xamarin を使用しています。コレクションは、Add、Remove、および Move メソッドを使用してその場で更新されます。これらの呼び出しは INotifyCollectionChanged イベントを正しくトリガーし、TableView は、テーブルを含むビューが最初に表示されたときに期待どおりに更新されます。ユーザーが通常のアプリケーション フローの一部として元のビューから移動し、後で正しいデータが返された場合、テーブルにロードされますが、追加、移動、および削除の呼び出しはテーブルを更新しません。
- コレクションが更新されたときに INotifyCollectionChanged イベントがまだ発生している
- MvxStandardTableViewSource のサブクラスでこれらのイベントを手動でサブスクライブし、UITableView で ReloadData を呼び出しても更新されない場合
- 私のプレゼンターは、ページにアクセスするたびにビューモデルとビューの新しいインスタンスを作成しています。
ビューをロードするカスタム プレゼンターを使用して、アプリケーションのナビゲーションにXamarin-Sidebar ( https://components.xamarin.com/view/sidebarnavigation ) も使用していますが、ビューが正確に初期化されていることがわかる限り、最初の訪問でも 2 回目以降の訪問でも同じコード パス。
私のプレゼンターの Show() メソッドは次のようになります。
ViewController のバインディングは次のようになります。
私のビューモデルは以下のとおりです。ここで、PlaylistTable は ObservableCollection のサブクラスであり、コレクションを最新の状態に保つために追加、移動、および削除を使用して Update メソッドを使用します。
このセットアップは、ビューが最初に初期化され、テーブルが正しく更新されるときに完全に機能します。テーブルの更新に失敗するのは、ビューが初期化された 2 回目以降だけです。ビューが両方のインスタンスで同じ手法を使用して作成されているように見えるときに、バインディングが失敗する理由を誰かが説明できますか?
必要に応じて追加のコードを投稿できますが、PlaylistTable から投稿していないコードは単体テストと最初の表示で正しく機能するため、問題はプレゼンターの使用方法にあると思います。
vb.net - AddRange ObservableCollection の問題
こんにちは、このリンクを使用して、ObservableCollection.AddRange の Fastest Observable Collection Best performanceを実装しています
ただし、AddRange() または ReplaceRange() メソッドを複数回呼び出すと、パフォーマンスが低下します。たとえば、
また、同じデータでもメソッドの実行に時間がかかります。
理解を深めるために、ここにコードがあります
c# - リストで変更されたオブジェクトのプロパティを特定する方法
私はOne
次のプロパティで言うクラスを持っています
今One
、ViewModelでこのようなタイプのリストを作成しました
ActionResult のリストにいくつかのオブジェクトを追加し、それをモデルに渡しました。
post メソッドが呼び出されたときに、 で削除または追加されたlstOne
オブジェクトと、 で特定のオブジェクトのどのプロパティが変更されたかを調べたいと思いますlstOne
。
リストを反復してオブジェクトとプロパティを比較するという古いアプローチを使用したくありません。他の方法はありますか。私はMSDNサイトを見ましたが、クエリを解決するためにそれを実装するための正しいアプローチを得ることができませんでしたObservableCollection
.NotifyCollectionChangedEventArgs
c# - コレクション変更イベントの System.InvalidOperationException 'n' インデックスは、サイズ '0' のコレクションには無効です
INotifyCollectionChanged のカスタム実装で CollectionChanged イベントをトリガーすると、この例外が発生します。
タイプ 'System.InvalidOperationException' の例外が PresentationFramework.dll で発生しましたが、ユーザー コードで処理されませんでした
追加情報: コレクション変更イベントのインデックス '25' は、サイズ '0' のコレクションには無効です。
XAML Datagrid は、ItemsSource としてコレクションにバインドされます。
この例外の発生をどのように回避できますか?
コードは次のとおりです。
エラーは次の行で発生します。
ありがとう!
c# - NotifyCollectionChangedEventArgs 項目にアクセスできません
オブジェクトのCollectionChanged
イベントのハンドラーがありますが、 を使用してイベントの に含まれるアイテムを取得する方法がわかりません。ObservableCollection<T>
NotifyCollectionChangedEventArgs
IList
コレクションに追加された新しいアイテムはNewItems
、オブジェクトのプロパティにありIList
ます。Intellisense ではアクセスできません.Item[Index]
(ドキュメントによればアクセスできるはずです)。また、NewItems
リストをローカル変数にキャストすることもできません (デバッグによると、NewItems
リストはSystem.Collections.ArrayList.ReadOnlyList
MSDN でアクセス可能なクラスとして存在しないようです)。 .)
私は何を間違っていますか?
例:
この例は、可能な限り一般的なものを維持していますが、それでも失敗します。
listview - タップでリストビューのアイテムを削除
これは私のコードです:
removeItem メソッドが呼び出されると、ビューが更新されず、アイテムが ListView から削除されない可能性があります。問題は CollectionChanged に関するものですが、それを修正する方法がわかりません。
注: Android デバイスでのデバッグ
c# - エンティティ データベース ストレージのシリアライズ クラス
曜日に真/偽の値としてフラグを立てるために使用しているアトミッククラスがあります。
これを Entity を使用して単一の列として保存したいと思います。次のようなPOCOがあります。
ここでの問題は、DaysOfWeek プロパティにアクセスするときに値を設定できないことです。
必要なのは ObservableCollection イベントだと思いますが、例を検索した後、それを実装する方法が正確にはわかりません。Entity POCO SSRS_Subscription を変更して追加する必要がありますか? これをより良く行うためのヒントやヒントをいただければ幸いです。