0

私はMVVMについて頭を悩ませようとしています。単純なリスト -> データ ビューの場合は問題ありません。しかし、複数のレイヤーがどのように機能するかを理解するのに苦労しています。私は何かが機能しているように見えますが、どのビットが機能し、どのビットが機能しないかについては、非常に行き当たりばったりです。たとえば、一部のデータは更新され、一部は更新されません。上位レベルのリストに影響を与えるより深いレベルのものは、リストを更新する場合と更新しない場合があります。パターンがあるはずですが、まだ見つけていません。list->data タイプのビュー以上のチュートリアルを知っている人はいますか?

例:

List of widgets
+- Widget name
+- Widget description
+- List of Widget parts
   +- Part ID
   +- Colour

この例では、左側にウィジェットのリスト、パーツ リストを含む中央にウィジェット情報、右側にパーツの詳細という 3 列のアプローチを使用できます。

4

1 に答える 1

3

レベルごとに1つずつ、複数のViewModelが必要です。次に、変更時に上位レベルを更新できるようにするイベントを提供できます。

たとえば、

public class WidgetListViewModel 
{
    public ObservableCollection<WidgetViewModel> Widgets {get; set; } 
}

public class WidgetViewModel
{
    public string WidgetName { get; set; }
    public string WidgetDescription { get; set; }
    public ObservableCollection<WidgetPartViewModel> Parts { get; set; }
}

public class WidgetPartViewModel
{
    public int PartId { get; set; }
    public System.Windows.Media.Color Color { get; set; }
}

イベント(単純なパターンを含む)の発生については、.Netのイベントについて説明しています。

さらに、MVVMでこの優れたビデオチュートリアルを視聴することをお勧めします:MVVM でのJason Dollinger

ビデオはUnityのいくつかの問題もカバーしています!(これはあなたにとって非常に価値があるかもしれません)

彼が開発したソースコードも利用できます: JasonDollingerによるLab49ソースコード

于 2012-07-16T17:31:15.783 に答える