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

时间:2015-10-22 00:09:58

标签: c# viewmodel

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

视图模型:

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;
}

XmaI位:

<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"/>

1 个答案:

答案 0 :(得分:0)

根据我们的评论对话,这是你得到的错误:

  

'SecondWindow'不包含'Show'和no的定义   扩展方法'显示'接受类型的第一个参数   可以找到'SecondWindow'(你是否错过了使用指令或者   装配参考?)

这告诉我你的问题是你不是从Window类或任何其他包含Show()方法的类派生的。当您尝试将SecondWindow类分配给Mainwindow时,您会收到以下错误,这进一步加强了这种推测:

  

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