【问题标题】:When does WPF subscribe to the PropertyChanged event?WPF 何时订阅 PropertyChanged 事件?
【发布时间】:2010-11-23 03:27:48
【问题描述】:

我有一个带有ObservableCollection 属性的ClassA,它实现了INotifyPropertyChanged 接口

在我的窗口代码隐藏中,我声明了一个ClassA variable,并在 Main() 方法中对其进行了初始化。

我希望 variable.PropertyChanged 将有一个 WPF 事件连接到它,但显然 PropertyChanged 事件仍然为空

【问题讨论】:

    标签: c# wpf data-binding inotifypropertychanged


    【解决方案1】:

    当您绑定到对象时,WPF 将订阅 PropertyChanged 事件。这是数据绑定工作的核心方式。

    它实际上是通过 PropertyChangedEventManager 在 WPF 中使用 WeakEvent pattern 来实现的。

    【讨论】:

    • 所以... WPF 也会在绑定被丢弃时取消订阅(从而避免内存泄漏)?
    • @NéstorSánchezA。它使用弱事件模式来避免内存泄漏。一般来说,您应该不会因为 WPF 绑定而出现泄漏问题。
    【解决方案2】:

    我不确定这是否能准确回答您的问题,但我有类似的经历,并在博客上写过 here

    本质上,确保在绑定发生时 DataContext 不为空,以便 PropertyChanged 事件可以返回到 UI...

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-05
      • 2011-04-30
      • 2011-12-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多