如何确定WPF用户控件何时完成加载

GAR*_*AR8 5 c# wpf .net-3.5

我有一个带有UIElement网格的WPF用户控件,里面有几个文本框和组合框.我有一个Button(btnApply),当表单加载完成后,其IsEnabled状态应为false.但是,TextChanged事件在填充网格时被触发,并将IsEnabled更改为true.我添加了一个布尔方法,在用户控件完成加载后确实保持btnApply.IsEnabled = false.但是,我无法分辨用户控件何时完全加载以改变我的方法的布尔状态以允许更改btnApply.IsEnabled.我已经在User Control上尝试了Loaded事件并尝试检查IsLoaded事件,并且在用户控件上的所有元素加载完毕之前它们都被触发.

编辑:用户控件的UIElement网格通过ItemsSource = List填充.通过TextChanged和SelectionChanged事件捕获文本框和组合框更改.

Rac*_*hel 6

尝试使用Dispatcher在稍后的DispatcherPriority而不是Loaded上触发IsEnabled更改,例如Input.

Dispatcher.BeginInvoke(DispatcherPriority.Input,
    new Action(delegate() { btnApply.IsEnabled = false; } ));
Run Code Online (Sandbox Code Playgroud)

您可以在此处查看DispatcherPriority订单