【发布时间】:2010-12-20 15:34:53
【问题描述】:
我正在尝试制作模态对话框窗口,让用户知道一些错误消息,或者让用户编辑一些值。 我正在使用 MVVM 模式,所以我的主窗口有一些控制部分和工作区部分。在工作区部分,我用数据模板打开视图模型到视图(定义为用户控件)。从这些视图之一我想打开模态对话框窗口。我正在关注这个答案Error window show modal in MVVM WPF。如该答案中所述,我已经在 InvoiceViewModel 中实现了 DialogClass。但是我在显示模态窗口的内容时遇到了问题。如果我将窗口的内容设置为 ViewModel 类,则输出是带有该 ViewModel 的命名空间路径的简单文本。 (ViewModel 使用数据模板附加到视图。)如果我将内容设置为视图 - 它正在工作 - 显示视图但是,我不符合 MVVM 模式(从 ViewModel 打开视图,因为 ViewModel 没有对视图的引用)。
ErrorViewModel newErrorViewModel = new ErrorViewModel();
ErrorView newErrorView = new ErrorView();
DialogWindow dialogWindow = new DialogWindow();
//Not Working
//dialogWindow.Content = newErrorViewModel;
//Working But, breaking MVVM
dialogWindow.Content = newErrorView;
dialogWindow.ShowDialog();
在 ErrorView.xaml 中,我像这样附加了 ErrorViewModel。
<DataTemplate DataType="{x:Type vm:ErrorViewModel}">
<vw:ErrorView/>
</DataTemplate>
我做错了什么?
谢谢。
【问题讨论】:
标签: wpf mvvm dialog modal-dialog