3

記事を管理するための小さなプログラムを書きたいです。pgm は、データグリッドに記事のリストを表示する必要があります。

これは、グリッドに表示する必要がある 500/1000 の記事になる可能性があります。josh smith がhttp://msdn.microsoft.com/en-us/magazine/dd419663.aspxの例で行っているように、データグリッド行でビューモデルを使用する必要がありますか?

私はジョシュの例で少しテストしました。そこで、彼の customers.xml ファイルを 800 人の顧客に拡張しました。-> アプリの起動と終了に少し (さらに) 時間がかかりました (表示されている場合は、[すべての顧客を表示] ボタンをクリックします)。数秒かかります。ビューモデルを使用するシステムには大きな負荷がかかるはずです。ビューモデルを記事の代わりにデータグリッド行として使用する利点を誰かが説明してくれますか?

より良い方法は何ですか?

public ObservableCollection<ArticleViewModel> AllArticle { get; private set; }

また

public ObservableCollection<Article> AllArticleraw { get; private set; }
4

1 に答える 1

3

ViewModels を DataGrid 行として使用するかどうかは、各行に必要な機能の量によって異なります。

グリッドが読み取り専用で、表示のみを目的としており、基になるデータが変更されない場合、ViewModels はおそらく行に対して過剰になります。

ただし、ユーザーが行を操作して行の値を編集する可能性がある場合、または行の値が外部アクションの結果として変更される可能性があり、それらの変更をグリッドに自動的に反映させたい場合は、次のことを考慮する必要があります。ビューモデル。

また、ViewModel は目的を果たすオブジェクトの名前にすぎないことに注意してください。必要に応じて重くすることも軽くすることもできます。たとえば、行にグリッドの変更をすぐに反映させたい場合は、各行列のプロパティを持つ単純な POCO にすることができ、INotifyPropertyChangedそれらのプロパティ値の 1 つが変更されたときにグリッドに通知するように実装します。

ViewModel の重い実装によって MVVM の概念を怖がらせないようにしてください。各 ViewModel に必要な機能のみを実装してください。

于 2013-02-25T18:43:25.810 に答える