如果用戶關閉應用程序,則必須顯示保存文件消息(以確保他想放棄編輯文件的更改)。關閉事件中的ShowDialog
實現這一點,我有一個菜單項的命令結合(無鍵的手勢):
private void Command_Exit(object sender, ExecutedRoutedEventArgs e)
{
Application.Current.Shutdown();
}
的主窗口具有關閉的事件。在這種情況下,我檢查是否有未保存的文件。如果是,則savedialog必須打開(選擇,哪些文件必須保存):
private void Window_Closing(object sender, CancelEventArgs e)
{
if (sdl.Count() > 0)
{
SaveDialog sd = new SaveDialog();
IEnumerable<Doc> close = sd.ShowDialog(this);
if (close == null)
e.Cancel = true;
else
foreach (Doc document in close)
document.Save();
}
}
在此的ShowDialog法(在我SaveDialog級實現)我叫
bool? ret = ShowDialog();
if (!ret.HasValue)
return null;
if (!ret.Value)
return null;
問題是:
如果我使用Alt + F4快捷鍵關閉應用程序(默認行爲的主窗口)它的作品,我得到savedialog如果有未保存的文件。但如果我通過執行Command_Exit方法關閉應用程序,方法調用
bool? ret = ShowDialog();
返回null,並且對話框不會出現。
如果我將Alt + F4 KeyGesture分配給CommandBinding,問題就會被切換:執行Command_Exit的效果很好,但不是Alt + F4快捷方式。
ShowDialog() - 方法在兩種情況下都不起作用,以及如何解決它的原因是什麼?
窗戶可以通過哪些方式關閉?不只是交互式。 – Jodrell 2012-04-12 13:38:44