0

ユーザーがアルゴリズムのフローチャートを設計できる WPF アプリケーションを設計しようとしています。これは、グリッド上に非常に多くのグラフィックがあることを意味します。(Canvas を使用する予定でしたが、Canvas は ScrollViewer をネイティブでサポートしていないため、グリッドを使用することにしました)。アプリケーションで MVVM デザイン パターンを使用しています。

グラフィックを動的に追加/削除するには、ビューモデルからどの状態をビューにエクスポートする必要がありますか?

4

1 に答える 1

2

アイテムのコレクションを表示するすべての場合によくあることですが、次のことを行う必要があります。

  1. 各アイテムを表すクラス (つまり、アイテムのモデル) を作成します。
  2. ObservableCollectionこのクラスの を ViewModel のプロパティとして公開します

ただし、詳細はかなり異なる場合があります。ビューを として実装する意図を正確に視覚化できないため、ビューが であるGridと仮定した場合のガイドラインを次に示しますCanvas

持続性モデルを決定する

項目がビューに配置されると、ユーザーは項目を移動できるようになりますか? ドキュメントを保存し、閉じてから再度開いた場合、それらの位置を忠実に再現する必要がありますか? その場合、アイテムのモデルはこれらの表示パラメーターを集約する必要があります。そうでない場合、ビューは実行時にアイテム自体を配置する方法を決定する可能性があります。

意味がある場合は、サブ ViewModel を使用します

アイテム モデルが非常に単純な場合は、 のインラインを使用して視覚的に表現できる可能性がありItemTemplateますItemsControl。そうでない場合は、メインの ViewModel からを作成しItemViewModelて公開することをお勧めします。ObservableCollection<ItemViewModel>

于 2012-09-24T14:59:03.117 に答える