私の趣味のプロジェクトでは、次の状況があります。
私はC#、WPF、MVVMを使用しています(まあMVVM:試してみてください)
バイナリ ファイルに情報を読み込み、(符号なし) バイトのリストに格納します。リスト内の特定の場所を参照するクラス階層があります。私のアプリケーションは、クラス階層 (および参照バイト) を変更することがありますが、バイトを直接変更することもあります (範囲のコピーなど)。
リストビューをマップされた構造にバインドしたウィンドウがあります。
クラスのプロパティを変更するときは、MVVM で使用する必要があるため、INotifyPropertyChanged を使用します。ただし、バイトを直接変更すると問題が発生します。現在、手動の Update メソッドを使用していますが、非常に面倒です。
これに対する何らかの解決策はありますか?
また、バイトのリストは 45 MB のデータのようになります。リストに通知を設定すると、バイトが変更されるたびにすべてのオブザーバーに通知されることになりますか? たとえば、10KB のバイトを 1 つずつコピーすると、100 万回の更新で 100 個のオブザーバー関数 (プロパティの変更を処理する) が必要になる場合を意味します。それはパフォーマンスキラーです。
または、次のように言うこともできます: クラス X を更新します (つまり、クラス内のすべてのプロパティの変更)。バイトのコピー中に値が既に変更されているため、プロパティの設定機能を使用できません。