在MVVM中,保持视图和视图模型解耦的同时打开窗口可以通过以下步骤实现:
ICommand
接口的属性,并且该属性的CanExecute
方法始终返回true
,因为我们希望随时都能打开窗口。public class MainViewModel : INotifyPropertyChanged
{
public ICommand OpenWindowCommand { get; private set; }
public MainViewModel()
{
OpenWindowCommand = new RelayCommand(OpenWindow);
}
private void OpenWindow()
{
// 在这里执行打开窗口的逻辑
// 例如,创建一个新的窗口实例并显示出来
Window newWindow = new Window();
newWindow.Show();
}
}
Command
属性到视图模型中的打开窗口命令。
DataContext
属性设置为视图模型的实例。
这样,当用户点击按钮时,将会调用视图模型中的打开窗口命令,从而实现解耦并打开新窗口的效果。