我将以下按钮初始化为禁用,在某些事件发生时启用:
<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;
}
确实启用了按钮,我可以在调试模式下看到它,但是当我在运行的应用程序中将鼠标悬停在它上面时,它实际上没有启用。
请帮忙
答案 0 :(得分:1)
在New_Click2中,您已经创建了MainWindow的新实例。但是,就我在您提供的代码中看到的情况而言,您从未显示此窗口实例:
xx.Show()
您在此处创建的MainWindow实例(xx)可能确实已启用其导入按钮,但它可能与您在屏幕上查看的实例不同。我怀疑如果你添加一行来显示它,你会看到两个MainWindow实例。如果是这样,解决方案是您需要将实例从一个类传递到另一个类,例如通过全局实例,参数,注入等