1

Unityコンテナーを使用してWPFPrismアプリケーションを開発しています。問題は次のとおりです。私にはがありListBox、各要素には独自のViewModelがあります。その要素では、場所のリストから場所を選択する必要があります。場所のリストはすべての要素で同じです。親のViewModelでこのリストを共有するにはどうすればよいですか?

インターネット上で私は私がするかもしれないことをグーグルで検索しました:

  1. を使用しRegionContextます。しかし、それは正しい方法ではありません(RegionContext1つのオブジェクトしか提供できませんが、場所だけではありません)。

  2. を使用しSharedServiceます。しかし、私の意見では、この方法はリアルタイムのデータ変更に適しています。

正しい方法はありますか?ベストプラクティス

4

2 に答える 2

1

リストが常に同じになる場合は、通常、静的クラスを使用します

public static class Lists
{
    public static List<Location> Locations {get; set;}

    static Lists()
    {
        Lists = DAL.GetLocations();
    }
}

次に、私のXAMLで

<ListBox ItemsSource="{Binding Source={x:Static local:Lists.Locations}}"
         SelectedItem="{Binding CurrentLocation}" />
于 2011-09-01T19:08:06.767 に答える
0

Rachels ソリューションのほかに、リストの新しいビュー モデルを作成し、このビュー モデルのインスタンスを IoC コンテナーに挿入できます。コンテナーを介してこのリスト ビュー モデルを解決するすべてのビュー モデルは、この単一のインスタンスへの参照を取得します。

于 2011-09-05T08:51:45.287 に答える