wpf启用来自不同类的禁用按钮

时间:2015-05-27 15:12:15

标签: c# wpf xaml

我将以下按钮初始化为禁用,在某些事件发生时启用:

<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;

        }
确实启用了

按钮,我可以在调试模式下看到它,但是当我在运行的应用程序中将鼠标悬停在它上面时,它实际上没有启用。

请帮忙

1 个答案:

答案 0 :(得分:1)

在New_Click2中,您已经创建了MainWindow的新实例。但是,就我在您提供的代码中看到的情况而言,您从未显示此窗口实例:

xx.Show()

您在此处创建的MainWindow实例(xx)可能确实已启用其导入按钮,但它可能与您在屏幕上查看的实例不同。我怀疑如果你添加一行来显示它,你会看到两个MainWindow实例。如果是这样,解决方案是您需要将实例从一个类传递到另一个类,例如通过全局实例,参数,注入等