WPF 检测 Window 关闭事件并与按钮事件耦合

WPF Detecting Window Close Event and coupling with a button event

两天来,我尝试了各种方法来制作它,以便在单击 loadButton 时,它会打开一个辅助 window 并禁用 loadButton;然后,当辅助 window 关闭时,将重新启用 loadButton。虽然,显然我所有的尝试都没有成功。

我一直在阅读有关使用 isClosing 事件的信息,但我还没有想出如何正确地实现它。所以我决定走这条路。

private void loadButton_Click(object sender, RoutedEventArgs e)
{
    var richWindow = RichTextWindow.GetWindow(new RichTextWindow());


    if (richWindow.IsActive != true)
    {
        loadButton.IsEnabled = false;
        richWindow.Show();
    }
     else
    {
        loadButton.IsEnabled = true;
    }         
}

这里的问题是,执行了前半部分。单击 loadButton 后,它会禁用。但是,在关闭新 Window 时,loadButton 仍处于禁用状态。 任何人都可以指出我需要去哪里的正确方向吗?

richWindow.Loaded +=
{
     loadedButton.IsEnabled = false;
 };

richWindow.Closing +=
{
    loadedButton.IsEnabled = true;
 }

我想你想要的是这样的:

private void loadButton_Click(object sender, RoutedEventArgs e)
{
    var richWindow = RichTextWindow.GetWindow(new RichTextWindow());
    richWindow.Closed += (s, e) => loadButton.IsEnabled = true;
    loadButton.IsEnabled = false;
    richWindow.Show();
}

基本上,在打开 window 之前禁用该按钮。然后,监听 window 关闭并再次启用按钮。