我在该窗口上加载了XAML MainWindow和Child User控件。在用户控件中的按钮单击事件中,我禁用mainWindow以及用户控件,直到按钮单击的工作未完成。当我再次从User控件更新属性以再次启用该窗口时,现在用户控制键不起作用,因为在调试它时显示IsEnabled窗口/用户控件的属性仍然是禁用的。我也强制更新用户控件属性 this.IsEnabled = true; 但仍然没有更新类true的IsEnabled属性。 如何更新主窗口和用户控件属性以启用或我的控制键如何可以再次工作。
答案 0 :(得分:1)
如果将mainWindow.IsEnabled设置为false,则无法将userControl.IsEnabled设置为true。您必须先将mainWindow.IsEnabled设置为true。您无法在禁用的控件中启用控件。
我用一个带有按钮的用户控件编写了一个简单的WPF应用程序。主窗口具有用户控件,用户控件的代码为:
public partial class MyUserControl : UserControl
{
DispatcherTimer m_timer = new DispatcherTimer();
public MyUserControl()
{
InitializeComponent();
m_timer.Tick += Timer_Tick;
m_timer.Interval = TimeSpan.FromSeconds(4);
}
private void Timer_Tick(object sender, EventArgs e)
{
Window window = Window.GetWindow(this);
window.IsEnabled = true;
m_timer.Stop();
}
private void Button_Click(object sender, RoutedEventArgs e)
{
Window window = Window.GetWindow(this);
window.IsEnabled = false;
m_timer.Start();
}
}