未处理 WPF 用户控件

Sam*_*Sam 3 c# wpf user-controls mvvm

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

我该怎么办?我已经研究过用户控件的处理,但是我没有成功找到帮助我解决这个问题的东西。也许我没有在寻找合适的主题?任何帮助或指示将不胜感激 - 谢谢!

Lui*_*ipe 5

WPF 控件不实现 IDisposable,因此不需要处理。我相信你想说“没有被标记为符合垃圾收集条件”

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

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

EventName-= methodHandler 或者 this.UserControlInstance=null

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