C# 在MVVM中打开窗口
我被告知打开/显示窗口应该使用窗口服务来完成,否则会被视为违反MVVM 我搜索后发现了这个C# 在MVVM中打开窗口,c#,wpf,mvvm,C#,Wpf,Mvvm,我被告知打开/显示窗口应该使用窗口服务来完成,否则会被视为违反MVVM 我搜索后发现了这个 class WindowService : IWindowService { public void ShowWindow(object viewModel) { var win = new Window(); win.Content = viewModel; win.Show();
class WindowService : IWindowService
{
public void ShowWindow(object viewModel)
{
var win = new Window();
win.Content = viewModel;
win.Show();
}
}
但是iWindows服务有以下错误:
无法在此处访问内部接口“IWindowService”
因此,假设这是打开新窗口的正确方法,如何继续?如果不是,那么最好的替代方案是什么?您需要定义
WindowsService
类在某处实现的接口:
public interface IWindowService
{
void ShowWindow(object viewModel);
}
您需要定义窗口打开界面。您的代码正在尝试删除WPF内部的。使用ShowWindow方法创建一个名为ImuhWinderOpener的接口并实现它。此外,应该将VM分配给DataContext。而且,
newwindow()
是没有意义的。此外,您不应该只是复制粘贴代码并运行它。理解它意味着什么,并将这种理解应用到你的应用程序中。无论你想从服务中打开一个窗口的原因是什么,你肯定可以用其他方式解决它。毕竟,服务拥有用户界面是毫无意义的。