Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 这种单向绑定会泄漏内存吗?_C#_Wpf_Mvvm_Memory Leaks_Postsharp - Fatal编程技术网

C# 这种单向绑定会泄漏内存吗?

C# 这种单向绑定会泄漏内存吗?,c#,wpf,mvvm,memory-leaks,postsharp,C#,Wpf,Mvvm,Memory Leaks,Postsharp,我在WPF应用程序中使用MVVM模式,出于教育目的,我有一个关于内存泄漏的问题 我一直在使用Postsharp图书馆 我的ViewModel如下所示: public class MyViewModel : INotifyPropertyChanged { private ClassA _myClassAField; //ClassA doesn't Implement INotifyPropertyChanged public MyViewModel(ClassA clas

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

我一直在使用Postsharp图书馆

我的ViewModel如下所示:

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:


问题:

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


绑定到属性名称只是ClassA中未实现INotifyPropertyChanged的一个getter。

您的
ClassA
未实现
INotifyPropertyChanged
,但您绑定到了类
MyViewModel
中的一个属性,它实现了!因此,您不应该有内存泄漏

供参考:

WPF检查以查找实现的东西时存在一个问题 InotifyProperty已更改。如果有数据绑定到某个非 实现此接口后,它会在全局表中生成一条记录。 该记录不会被清除,因为WPF无法在何时进行检查 不再需要该数据库记录


为什么您认为存在内存泄漏?ClassA没有实现INotifyPropertyChanged。我的get属性返回ClassA对象的名称。或者用NotifyPropertyChanged标记的名称属性会覆盖它吗?啊,我明白了!你链接的那篇文章真的很有趣,让我开窍。我刚刚探索了内存泄漏区域,希望对此有更多的了解。@J.Olsson,很高兴能帮助dude
<Textblock Text="{Binding Name, Mode=OneWay}"/>