有关于此的问题,但这有点不同,所以我问。 这是我在窗口中的xaml:
<i:Interaction.Triggers>
<i:EventTrigger EventName="Closing">
<i:InvokeCommandAction Command="{Binding ClosingCommand}" />
</i:EventTrigger>
</i:Interaction.Triggers>
这是关闭命令:
public virtual ICommand ClosingCommand
{
get { return new RelayCommand(ClosingExecute); }
}
这是执行:
public virtual void ClosingExecute()
{
MessageBoxResult result = MessageBox.Show("Close the application?", "Shut Down", MessageBoxButton.YesNo);
if(result == MessageBoxResult.Yes)
{
Application.Current.Shutdown();
}
else
{
//I don't know what to write
}
}
如何在这种情况下保持我的应用程序活着?感谢。
答案 0 :(得分:2)
来自Closing
可以处理关闭以检测窗口何时关闭(例如,当调用Close时)。此外,Closing可用于防止窗口关闭。要防止窗口关闭,可以将CancelEventArgs参数的Cancel属性设置为true。
您需要将事件处理程序与此事件挂钩,并将Cancel
设置为true
。
如果您想以mvvmy方式执行此操作,this answer可能会帮助您将eventargs连接到命令参数
答案 1 :(得分:1)
<Application
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
StartupUri="MainWindow.xaml"
ShutdownMode="OnExplicitShutdown">
</Application>
ShutdownMode="OnExplicitShutdown"