3

每次我打开视图时,对每个模型属性的获取请求数都会增加一。为了清楚,如果我打开一次视图,关闭它并再次打开它,每个属性都有两个获取请求,如果设置了属性并且触发了RaisePropertyChanged("propertName"),则再次有两个获取请求。获取请求的数量总是等于视图被实例化的次数!我已经调试了这个问题的生命,一切都指向它是当视图关闭并且绑定被保留时用户控件没有被处理。

我该怎么做才能解决这个问题?我已经研究过用户控件的处置,但是我未能找到帮助我解决此问题的方法。也许我不是在寻找正确的话题?任何帮助或指示将不胜感激 - 谢谢!

4

1 回答 1

5

WPF 控件不实现 IDisposable,因此不需要处理。我相信您想说“没有被标记为有资格进行垃圾收集”

看来您的问题与所谓的事件引用有关。您的某些活动实例(您拥有的某些类不是您的窗口/用户控件)保留对事件的引用。如果您关闭 Window 或 UserControl,该链接仍然存在并且不会自动清除。

关闭窗口/用户控件时,您应该像这样取消引用您的事件

EventName-= methodHandler 或者 this.UserControlInstance=null

你可以在这里读到一些有趣的模式

于 2013-10-07T10:41:24.633 回答