WPF启用来自不同类的禁用按钮
本文关键字:按钮 同类 启用 WPF | 更新日期: 2023-09-27 17:50:56
我将以下按钮初始化为禁用,当某些事件发生时启用:
<Button.Style> <!-- initially disabled-->
<Style TargetType="Button">
<Setter Property="IsEnabled" Value="False" />
</Style>
</Button.Style>
</Button>
所以如果我运行这段代码(点击其他按钮),它就被启用了:
private void Record_Click(object sender, RoutedEventArgs e)
{
Btn_Import.IsEnabled = true;
}
启用第一个按钮的另一个按钮处于相同的形式。但是,如果我尝试在不同的窗口中创建一个带有按钮的事件,则不起作用。如果我在其他窗口的类中这样做:
private void New_Click2(object sender, RoutedEventArgs e)
{
MainWindow xx = new MainWindow();
xx.Btn_Import.IsEnabled = true;
}
按钮确实被启用,我可以看到在调试模式,但它实际上是不启用,当我把鼠标悬停在它运行的应用程序。
请帮
在New_Click2中,您已经创建了MainWindow的新实例。然而,据我所知,在您提供的代码中,您从未显示过这个窗口实例:
xx.Show()
您在这里创建的MainWindow实例(xx)可能确实启用了其导入按钮,但它可能与您在屏幕上看到的实例不同。我怀疑,如果您添加一行来显示它,您将看到两个MainWindow实例。如果是这样,解决方案是你需要将实例从一个类传递到另一个类,例如通过全局实例,参数,注入等。