我需要使用 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;
}
在这里,我能够获得 ModernWindow 内容的 DataContext,即“IPromptMainViewModel”类型,但在这里很难将视图映射/加载到这个 ModernWindow 中,因为有多个视图实例,但我想在 ViewModel 中进行其中存在“ShowPrompt()”,因为模型将与视图正确关联,因此我可以轻松地将视图映射到那里。
谢谢你。