同じビューモデルタイプの複数のユーザーコントロールビューに関する質問があります。私は混乱のための具体的な答えを見つけることができないようですが、これはかなり投機的です。MVVM複数のビューPrismの同じViewModel
私は持っています。
<StackPanel Orientation="Vertical">
<TextBlock Text="Signature Summary" FontSize="14" FontWeight="Bold" TextAlignment="Center" Height="30"/>
<my:ParameterFileSummaryView DataContext="{Binding ParamterFile1ViewModel}"/>
<my:ParameterFileSummaryView DataContext="{Binding ParamterFile2ViewModel}"/>
<my:ParameterFileSummaryView DataContext="{Binding ParamterFile3ViewModel}"/>
<my:ParameterFileSummaryView DataContext="{Binding ParamterFile4ViewModel}"/>
<my:ParameterFileSummaryView DataContext="{Binding ParamterFile5ViewModel}"/>
</StackPanel>
スタックパネルは、プリズム/ユニティのIoCアーキテクチャに使用依存性ビューモデルのDataContextを有するメインビュー内のコンテナです。
これらは、これらの個々のビューのデータ接続を、別のインターフェイスを介してメインビューのインターフェイスのプロパティにバインドしています。
すべてがうまくいくように見え、ParameterFileSummaryViewの要素のバインディングは、最初のParamterFile1ViewModelの設定値にうまくバインドされます。
これはまさに私が欲しいものです。しかし、これらのViewModelは、メインウィンドウのViewModel内に構築され、Unityコンテナからは外されていません....それはすべて少しハッキリです。私が試みていることを実行するためのよりきれいな方法がありますか?
本当に疑問な質問であれば謝罪しますが、私は木の木が見えません。質問が混乱する場合は編集を追加します。私は熟練していません。
メインウィンドウのViewModelを、それらのViewModelをコンテナから解決してインスタンス化します。あなたはほとんど自分でそこにいると思う。 – Jon
何らかの理由で私はコンテナによって構築されたすべての具体的なクラスが、私のインターフェイスによって収縮していると考えていました。しかし、私はこれが本当であるかどうかを選択することができます...私は私のメインビューモデルのコンテナへの参照を持っているとは思わない、多分私はコンストラクタで複数の 'サブ'ビューモデルを渡すことができますか? – tigerswithguitars
これもうまくいく(コンテナに自動的に注入させる)ことができます。 – Jon