0

私は自分のデザインを実装するための最良の方法を見つけようとしています。または、MVVMアプローチに関して自分のデザインが間違っているかどうかを理解しようとしています。

アイデアは、私のメインウィンドウに2つのコントロールがあるということです。A Menu(通常、ファイル、編集など)とContentControlContentControlは、MainWindowViewModelのプロパティにバインドされます。

アプリケーションがロードされると、MainWindowViewModelのコンストラクターがプロパティ(CurrentViewと呼ばれる)をWelcomeViewにバインドします。2つのボタンがあるウェルカムメッセージです。1つのボタンはSearchViewと呼ばれる新しいビューを開くためのもので、もう1つのボタンはAddViewと呼ばれるビューを開くためのものです。

私が抱えている問題は、これがどのように機能するかについて頭を悩ませることです。

WelcomeViewModelはMainWindowビューモデルを知ることができますか?私は注意を仮定します。たぶん、App.xaml内で、「クリックされました。閉じて新しいビューを開いてください」という関数を呼び出す必要がありますか?

私の質問が明確であることを願っています。そうでない場合は、私に知らせてください。

4

1 に答える 1

1

はい。これは、WPFの「部分ビュー」を解決する方法です。

MainViewには

<ContentPresenter Content="{Binding ActiveViewModel}"/>

次に、MainViewModelには

public BaseViewModel ActiveViewModel {get;set;} //NotifyPropertyChanged, of course =)

したがって、「アクティブなViewModel」を変更するたびに、contentpresenterはそのVMのビューを表示します。それと同じくらい簡単

于 2013-02-27T16:37:26.723 に答える