2016-07-21 22 views
2

このコミュニティには、ウィンドウを開くための多くの質問があります。ビューのインスタンスを作成し、.Showといくつかの質問は、ウィンドウビューでユーザーコントロールを使用することに基づいています。WPFの表示ユーザーコントロール(WPF)の表示ページ

私はビューでは、WPFアプリケーションを作成するために、MVVMパターンを、次の午前私はUser Control(WPF)図であるSalesView.xamlというファイルを作成し、デフォルトでは、私はウィンドウを表示し、プロジェクト構造であるApp.xamlからDashboard.xamlを設定するには、いくつかのことですこのように:

Project Structure

私の要件は、私はUser Control(WPF)ビューいない窓眺めですSalesView.xamlを開くこのボタンをクリックするだけでDashboard.xamlのボタンを持っているということです。

答えて

2

ユーザーコントロールをホストするためのシェルが不足しているようです。最も簡単な方法は、以前のものではなく内容としてメインウィンドウに表示することです。または、Prismのようなフレームワークを使用してください。

通常はどのようにすればいいですか、コントローラー/ビューマネージャーのクラスを作成します。それから私のビューとVMを渡すと、クラスはそれをバインドしてホスティングウィンドウに配置します。

class ViewManager 
{ 
    public void ShowView<T>(object viewModel) where T: UserControl, new() 
    { 
     var view = T(); 
     var window = new Window(); // feel free to prelace this simple approach with hosting shell 
     view.DataContext = viewModel; 
     window.Content = view; 
     window.Show(); 
    } 
} 

使用サンプル:

new ViewManager().ShowView<MyUserControl>(new MyViewModel()); 
関連する問題