Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
需要有关MVVM的帮助。关闭一个窗口并打开第二个窗口C#_C#_Viewmodel - Fatal编程技术网

需要有关MVVM的帮助。关闭一个窗口并打开第二个窗口C#

需要有关MVVM的帮助。关闭一个窗口并打开第二个窗口C#,c#,viewmodel,C#,Viewmodel,我想通过单击关闭按钮关闭一个窗口,然后打开另一个窗口或子窗口。我做错了什么 视图模型: private ICommand _closeCommand; public ICommand CloseCommand { get { return _closeCommand ?? (_closeCommand = new CommandHandler(() => MyClose(), _canExecute)); } } public void MyClose() { Secon

我想通过单击关闭按钮关闭一个窗口,然后打开另一个窗口或子窗口。我做错了什么

视图模型:

private ICommand _closeCommand;
public ICommand CloseCommand
{
    get { return _closeCommand ?? (_closeCommand = new CommandHandler(() => MyClose(), _canExecute)); }
}

public void MyClose()
{
    SecondWindow window = new SecondWindow() { DataContext = new SecondWindowViewModel() };
    window.Show();
    App.Current.MainWindow.Close();
    App.Current.MainWindow = window;
}
Xmal:


根据我们的评论对话,您得到的错误如下:

“SecondWindow”不包含“Show”和“no”的定义 扩展方法“Show”接受类型为的第一个参数 找不到“SecondWindow”(您是否缺少using指令或 装配参考?)

这告诉我您的问题是,您不是从Window类或任何包含Show()方法的其他类派生的。当您试图将第二个窗口类分配给主窗口时,会出现以下错误,这进一步加强了这种推测:

无法隐式转换类型“SampleApplication.View.SecondWindow” 到“System.Windows.Window”


你必须告诉我们发生了什么,对吗?您是否遇到错误或预期的情况没有发生?window.show()不工作。这是window.Show()的错误SecondWindow'不包含'Show'的定义,对于App.Current.MainWindow=window,找不到接受第一个'SecondWindow'类型参数的扩展方法'Show'(是否缺少using指令或程序集引用?);无法隐式地将类型“SampleApplication.View.SecondWindow”转换为“System.Windows.Window”。好吧,向我们展示SecondWindow类,因为您似乎不是从Window派生的。我对MVVM有点陌生。如何派生窗口类。public类ViewModelBase:Window,inotifyproperty已更改,但它没有帮助我。有什么办法我可以把我的申请表样本寄给你,你可以看一下。请帮助。@MisuZAMAN从另一个类派生与MVVM无关。你需要学习C#的基础知识。在原始问题中发布相关代码。
<Button Command ="{Binding CloseCommand}" 
 CommandParameter="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType=Window}}" Name="Close" Content="Close" HorizontalAlignment="Left" Margin="535,379,0,0" VerticalAlignment="Top" Width="75"/>