我有一个具有三个依赖属性的 silverlight 用户控件。所有属性都已成功绑定(bind)并且它们具有正确的值。这些属性的值在父控件中异步加载,所以我不知道属性绑定(bind)的顺序。当我的控件的所有属性都已加载时,我需要加载一些实体。有没有优雅的解决方案来解决这个问题。我不想使用 hack 创建私有(private)字段或类似的东西。 Load 事件在所有绑定(bind)之前触发,因为正如我所说,我的属性是异步加载的。
这是一个例子:
<namespace:MyControl Prop1="{Binding ParentProp1}" Prop2="{Binding ParentProp2}" Prop3="{Binding ParentProp3}" />
最佳答案
创建您自己的事件并在所有属性初始化后调用它。
您可以通过在控件中实现 INotifyPropertyChanged
然后订阅 OnPropertyChanged
事件并检查所有属性是否已初始化来确定所有属性是否已正确初始化。在那里你可以触发你的事件来告诉任何订阅者初始化已经完成。
关于c# - 是否有任何事件表明所有依赖属性都已加载?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22149382/