我是 MVVM 的新手,遇到了如何在其自己的 ViewModel c#-file 中打开对话框并随后关闭对话框的问题。寻找可能的解决方案,没有找到合适的。我的解决方案如下所示,但我不确定这是否有一些缺点。定义了一个 UserControl 并使用以下命令打开它:
void ChangeDataPathExecute()
{
Window window = new Window
{
Content = new ChangeDataRootPathUserControl(),
};
window.ShowDialog();
}
在 UserControl 文件的 ViewModel 中实现:
private void DetermineMyWindow()
{
foreach (Window window in App.Current.Windows)
{
ChangeDataRootPathUserControl uc = window.Content as ChangeDataRootPathUserControl;
if (uc == null)
continue;
myWindow = window;
}
最后在 Close 方法中:
void OkChangeDataRootPathExecute()
{
DetermineMyWindow();
myWindow.Close();
}
你怎么看待这件事?破解还是好的解决方案?感谢反馈节拍