【发布时间】:2016-09-20 11:08:38
【问题描述】:
我在 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:
<Textblock Text="{Binding Name, Mode=OneWay}"/>
问题:
这个绑定会泄漏内存吗? 在我的测试中它似乎没有泄漏,但我不明白为什么?
与 Property Name 的绑定只是 ClassA 中的一个 getter,它没有实现 INotifyPropertyChanged。
【问题讨论】:
-
为什么会认为有内存泄漏?
-
ClassA 没有实现 INotifyPropertyChanged。而我的 get 属性返回 ClassA 对象的名称。或者用 NotifyPropertyChanged 标记的 Name 属性会覆盖它吗?
标签: c# wpf mvvm memory-leaks postsharp