如何检测WPF中完成的数据绑定

时间:2009-05-05 14:23:34

标签: wpf data-binding treeview

当我在树视图中选择一个项目时,我的viewmodel类被实例化为视图刷新并且树视图节点被点亮时存在显着的时间间隔。

我需要在这段时间内显示一个等待光标 - 我已经尝试包装实例化我的viewmodel类的代码,但是光标在整个数据绑定似乎完成之前几秒钟回到箭头并且节点变得很开心。是否有一些事件告诉我何时完成绑定,或节点是否点亮?

这与扩展节点无关,只需选择顶级节点即可。

感谢您的帮助。

5 个答案:

答案 0 :(得分:8)

在设置了所有绑定之后,将在所需的TreeView控件上发生Loaded事件。我认为它发生在所有东西被绘制之前,所以它可能不是你需要的。

答案 1 :(得分:7)

您可以在目标或更新来源时收到通知。

<TreeViewItem>
    <TextBlock Name="NameText"
      Text="{Binding Path=Name, Mode=OneWay, NotifyOnTargetUpdated=True}"
      TargetUpdated="OnTargetUpdated"/>
</TreeViewItem>

答案 2 :(得分:1)

发生这种差距时是否有“挂起”?也许您需要将重型逻辑放在单独的线程上,或者只是使用Binding类的IsAsync属性。 您可能还想查看优先级绑定。 Here是关于如何使用它的非常好的文章。

答案 3 :(得分:0)

您可以覆盖OnContentRendered for Window控件。

答案 4 :(得分:0)

在我的情况下,当我删除(IsAsync = True)属性时,ContentRendered方法会立即捕获渲染的结尾。

检查控件的IsAsync属性。