WPF では、ビューを「表示」/「閉じる」ための (すぐに使える) 2 つの方法があります。.Show()
1 つ目は、またはメソッドを介して Window または Dialog を表示するだけで、.ShowDialog()
メソッドで閉じることができます.Close()
。この場合、Messenger
前述のように MVVMLight クラスを使用して、分離された方法で表示/終了メッセージをビューに送信できます。これは「閉じる」の例です。
ビューモデルで:
CloseTheView()
{
Messenger.Default.Send(new CloseTheViewMessage);
}
ビューのコード ビハインドで:
//Constructor
public TheView()
{
...
Messenger.Default.Register<CloseTheViewMessage>( () => this.Close() );
}
ご覧のとおり、これにはコード ビハインド ファイル内のコードが含まれますが、これは 1 行の機能にすぎないため、大したことではありません。
2 つ目の方法は、ナビゲーション フレームワーク(WPF と Silverlight の両方で使用可能) を使用することです。Window
メイン(またはUserControl
) である「シェル」を定義し、そのframe
中に を配置し、他のビューを から継承させてから、関連付けられた(または直接のもの)Page
のインスタンスを使用して ViewModel からナビゲーションを開始します。ページ自体に関連付けられています)。NavigationService
Frame
お役に立てれば :)