-1

ModernWindow の ContentSource プロパティを使用して、ビュー セットの DataContext を取得する必要があります。助けてください。Modern UI で MVVM フレームワークを使用しています。別のウィンドウを表示する必要がある ViewModel コードは次のとおりです。

public void ShowPrompt()
{
    this.PromptWindow = ObjectFactory.GetInstance<IPromptWindowViewModel>().Window as ModernWindow;
    this.PromptWindow.Owner = Application.Current.MainWindow;
    this.PWPMainViewModel.PromptWindowsCollection.Add(this.PromptWindow);
    // Here I need to get the DataContext of PromptWindow's Content
    this.PromptWindow.Show();
}

デバッグを行ったところ、「OnNavigatedTo」イベントで ModernUI から IContent インターフェイスを継承していることがわかった

public void OnNavigatedTo(FirstFloor.ModernUI.Windows.Navigation.NavigationEventArgs e)
{
    IPWPMainViewModel pwpMainViewModel = ObjectFactory.GetInstance<IPWPMainViewModel>();
    pwpMainViewModel.PromptMainsCollection.Add(new ContentControl { Content = e.Content });
    IPromptMainViewModel promptMainViewModel = ((UserControl)e.Content).DataContext as IPromptMainViewModel;
}

ここで、「IPromptMainViewModel」タイプの ModernWindow のコンテンツの DataContext を取得できますが、ビューのインスタンスが複数あるため、ビューをこの ModernWindow にマップ/ロードするのは非常に困難ですが、ViewModel で実行したいと思います。モデルがビューに正しく関連付けられるため、「ShowPrompt()」が存在するため、ビューを簡単にマップできます。

ありがとうございました。

4

1 に答える 1