每次打开视图时,每个模型属性的 get 请求数都会增加一个。要清楚一次是否打开视图,关闭它并再次打开它,每个属性有两个 get 请求,如果属性是 set 和触发RaisePropertyChanged(“propertName”),再次有两个 get 请求。 get 请求的数量始终等于视图已实例化的次数!我已经调试了这个问题的生命,并且所有内容都指向用户控件在关闭视图并且隐藏绑定时没有被处理掉。
我应该怎么做才能解决这个问题?我已经考虑过处理用户控件,但是我找不到帮助我解决这个问题的方法是不成功的。也许我不是在寻找正确的话题?任何帮助或指示将不胜感激 - 谢谢!
答案 0 :(得分:3)
WPF控件不实现IDisposable,因此不需要处理。 我相信你想说“没有被标记为有资格收集垃圾”
您的问题似乎与所谓的事件参考有关。 您的一些生活实例(您拥有的某个类不是您的窗口/用户控件)保留对事件的引用。如果您关闭仍然存在的链接的Window或UserControl,则不会自动清除。
关闭窗口/用户控件时,您应该取消引用您的事件
EventName-= methodHandler
要么
this.UserControlInstance=null
您可以阅读一些有趣的模式here