如何检测表单是否在wpf中加载

时间:2015-01-08 20:34:43

标签: vb.net events constructor

我有一个程序,我在其中创建一个包含几个组合框的新表单。当我创建表单时,我想填充其中一个组合框,其值取决于一天中的时间。到目前为止工作正常。

当我填充组合框中的值时,会触发SelectionChanged事件,这是正常的。但是,如果我仍在表单构造函数中,我想阻止组合框执行不同的操作。在这种情况下,我想在用户仅更改选择时显示一个消息框。

这样的东西
If Form.IsFinishedLoading then
    'Do something
Else
    'Do something else
End if

在这种情况下我通常做的是设置一个布尔值,告诉我是否仍然在我的加载序列中,这是有效的,但我想知道是否还有其他更好的方法来做到这一点。

此致

1 个答案:

答案 0 :(得分:1)

尝试使用Dispatcher在稍后的DispatcherPriority而不是Loaded上触发代码,例如Input。

 Dispatcher.BeginInvoke(DispatcherPriority.Input, New Action(Sub() dowhat?))

这是实施的一个小例子......

http://sambourton.wordpress.com/2009/07/28/execute-a-method-asynchronously-using-the-dispatcher-queue/

另一个描述DispatcherPriority枚举的优秀链接,按优先级升序排列,从最低到最高......

http://sambourton.wordpress.com/2009/07/15/tips-and-tricks-with-the-dispatcher-and-dispatcherpriority-in-wpf/