需要有关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"/>