【问题标题】:Is there any event to indicate that all dependency properties were loaded?是否有任何事件表明所有依赖项属性都已加载?
【发布时间】:2014-04-04 15:44:16
【问题描述】:

我有一个具有三个依赖属性的 Silverlight 用户控件。所有属性都已成功绑定并且它们具有正确的值。这些属性的值在父控件中异步加载,所以我不知道我的属性绑定的顺序。当我的控件的所有属性都已加载时,我需要加载一些实体。有什么优雅的解决方案可以解决这个问题。我不想使用黑客来创建私有字段或类似的东西。 Load 事件在所有绑定之前触发,因为正如我所说,我的属性是异步加载的。

这是一个例子:

<namespace:MyControl Prop1="{Binding ParentProp1}" Prop2="{Binding ParentProp2}" Prop3="{Binding ParentProp3}" />

【问题讨论】:

  • 正如您的问题所说“是否有任何事件表明所有依赖项属性都已加载?”答案是否定的!

标签: c# silverlight binding user-controls


【解决方案1】:

创建您自己的事件并在您的所有属性初始化后调用它。
您可以通过在控件中实现INotifyPropertyChanged 然后订阅OnPropertyChanged 事件并检查所有属性是否已初始化来确定您的所有属性都已正确初始化。在那里你可以触发你的事件来告诉任何订阅者初始化已经完成。

Implement INotifyPropertyChanged
C# Events Guidelines

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-02-23
    • 1970-01-01
    • 1970-01-01
    • 2016-11-01
    • 2019-01-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多