首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >这个OneWay绑定是否泄漏内存?

这个OneWay绑定是否泄漏内存?
EN

Stack Overflow用户
提问于 2016-05-23 14:04:33
回答 1查看 686关注 0票数 2

我在WPF应用程序中使用MVVM模式,为了教育目的,我有一个关于内存泄漏的问题。

我一直在使用Postsharp图书馆。

我的ViewModel如下所示:

代码语言:javascript
复制
public class MyViewModel : INotifyPropertyChanged
{
     private ClassA _myClassAField; //ClassA doesn't Implement INotifyPropertyChanged

     public MyViewModel(ClassA classAParameter)
     {
          _myClassAField = classAParameter;
     }

     [NotifyPropertyChanged]
     public string Name { get { return _myClassAField.Name; } }


     .....//Other Code.....    
}

Xaml:

代码语言:javascript
复制
<Textblock Text="{Binding Name, Mode=OneWay}"/>

问题:

这个绑定会泄漏内存吗?在我的测试中,它似乎没有泄漏,但我不明白为什么?

绑定到属性名只是来自没有实现ClassA的INotifyPropertyChanged的一个getter。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-05-23 14:28:56

您的ClassA没有实现INotifyPropertyChanged,但是您正在绑定到类MyViewModel中的一个属性,这个属性是这样的!因此,您不应该有内存泄漏。

参考:https://blogs.msdn.microsoft.com/micmcd/2008/03/07/avoiding-a-wpf-memory-leak-with-databinding-black-magic/

在WPF检查以找到实现INotifyProperyChanged的东西时,存在一个问题。如果存在不实现此接口的对象的数据库,那么它将在全局表中创建记录。该记录不会被清理,因为WPF无法检查何时不再需要该DB记录。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37393198

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档