【发布时间】:2018-02-24 17:36:45
【问题描述】:
我想从我的视图模型创建视图中删除
我写了 WinodwsService 类来创建一个新窗口:
public class WindowService : IWindowService
{
public void ShowWindow(object viewModel)
{
//var win = new DXWindowCloasable(viewModel);
var win = new DXWindow();
win.Content = viewModel;
win.DataContext = viewModel;
win.ShowDialog();
}
}
在视图模型中我调用方法:
var vm = new PolaPrzewoznikowViewModel(konf);
IWindowService wnf = new WindowService(); // this is only for test
wnf.ShowWindow(vm);
在 UserControl 中我定义了视图模型类型:
<UserControl.DataContext>
<local:PolaPrzewoznikowViewModel />
</UserControl.DataContext>
当我有这个时,我可以在命令上向下钻取 (CTRL + B),并在我投影视图时使用代码完成 - 这非常有帮助。
但是...当我使用 win.ShowDialog();创建新的视图模型。并且显示的视图具有不带参数的视图模型(默认构造函数)。
如何使用窗口服务并将定义的 UserControl.DataContext 保留在视图中?
【问题讨论】:
-
很明显,您创建了两次 ViewModel。一个在代码中,一个在