在我看来,我有:WPF关闭与MVVM从视图模型类窗口
<Button Grid.Column="2" x:Name="BackBtn" Content="Powrót" Command="{Binding ClickCommand}" Width="100" Margin="10" HorizontalAlignment="Right"/>
然后,在视图模型:
public ICommand ClickCommand
{
get
{
return _clickCommand ?? (_clickCommand = new CommandHandler(() => MyAction(), _canExecute));
}
}
private void MyAction()
{
MainWindow mainWindow = new MainWindow(); // I want to open new window but how to close current?
mainWindow.Show();
// how to close old window ?
}
namespace FirstWPF
{
public class CommandHandler : ICommand
{
private Action _action;
private bool _canExecute;
public CommandHandler(Action action, bool canExecute)
{
_action = action;
_canExecute = canExecute;
}
public bool CanExecute(object parameter)
{
return _canExecute;
}
public event EventHandler CanExecuteChanged;
public void Execute(object parameter)
{
_action();
}
}
}
我不知道如何处理这个问题,我想关闭当前窗口窗体ViewModel,因为我正在打开一个新窗体。
你是否打算在打开新窗口之前说你想调用'Application.Current.MainWindow.Close();'? –
只是一个侧面说明 - 说一些“不起作用”是无用的。这可能意味着什么。你试图调用Close()(关于什么对象?)并且它“不起作用”:它是否抛出异常?编译器是否告诉你它不是你试图调用它的神秘秘密未知对象的成员?或者是什么?事情可以以任何方式“不起作用”。说哪个。 –
不起作用意味着什么也没有发生 –