質問

それはViewModelにコンストラクタにパラメータを渡すことは可能ですか?私は、プロパティを初期化および/またはViewModelにに他の操作を行うには、このパラメータを使用することになります。

私は何ができるのWinFormsで

public MyForm(MyParamType myParam) {
    MyFormProperty = myParam;
    //etc.
}

私はMVVMライトを使用して/ MVVMパターンに似た何かをやって行く方法を教えてください。

任意の提案は、最も歓迎されるでしょう。事前に感謝します。

役に立ちましたか?

解決

私はIoCコンテナを使用して、建設時にパラメータを供給するために、あなたのコンテナを設定することをお勧めします。

は例えば、ここでユーザーコントロールへの典型的なコードビハインドは、WPFで私のために次のようになります。

public partial class MyDataGridView : IMyListView
{
    public MyDataGridView()
    {
      InitializeComponent();
    }

    public MyDataGridView(MyListViewModel viewModel)
    {
      InitializeComponent();

      DataContext = viewModel;
 }
}
デフォルトではgreediestコンストラクタを検索して、依存関係を提供するため、

のStructureMapは私のためにMyListViewModelを作成します。私のStructureMapの構成では、私はMyListViewModelは、そのオブジェクトの構築時に必要なものは何でもパラメータを提供するように指定できます。

のStructureMap状の容器で、私は、オブジェクトまでの「新」がありません。エヴァー。

他のヒント

あなたはMVVM光を使用して(あなたがいない方にも、私は推測する)あなたは、コンストラクタのパラメータ(またはそのタプルを)かかりメッセンジャーでメッセージハンドラを登録することができ、あなたが再構築「に必要なときにVMを更新している場合" それ。

すべてのビューモデルがロケータ上の静的なので、あなただけのコンストラクタを変更せずに、既にこれらのプロパティにアクセスすることができます。

あなただけのviewmodelを自分で作成傾ける理由

私は理解しません。あなたは常にあなた自身のviewmodelを作成することができます。 MVVMライトが提供するのviewmodelがあるなら、あなたは常にその1から継承し、オーバーロードコンストラクタを作成することができます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top