AAA*_*AAA 4 data-binding wpf memory-leaks weak-references
在我的应用程序中,我有一些在主窗口中打开的用户控件.我想打开用户控件并关闭它们.在每个用户控件中,我有任何信息表单的图片,文本框和标签.我注意到内存不会被垃圾收集器回收.我在互联网上搜索了一个弱点来解决我的应用程序的内存泄漏问题.我找到了一些问题的好答案,但大多数都与.net framework 3.5或更早版本有关.我使用内存分析器根据一些建议找到线索.当我使用内存分析器时,我发现绑定到对象引起了很多弱引用.这是根据链接,我试图在删除父控件之前删除绑定,它没有解决我的问题.这里是xaml代码:
<TextBox x:Name="nameTextBox" Text="{Binding Name, Mode=TwoWay}" />
Run Code Online (Sandbox Code Playgroud)
我将DataContext设置为我的Model的一个实例.我的模型如下
public class MyModel : INotifyPropertyChanged
{
private string name;
public string Name
{
get { return name; }
set
{
if (name!= value)
{
name= value;
OnProperyChanged("Name");
}
}
}
public event PropertyChangedEventHandler PropertyChanged;
protected void OnProperyChanged(string propertyName)
{
if (PropertyChanged != null)
this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}`
...
}
Run Code Online (Sandbox Code Playgroud)
我尝试使用以下代码清除我的绑定:
BindingOperations.ClearBinding(nameTextBox,TextBox.TextProperty);
Run Code Online (Sandbox Code Playgroud)
但弱的参考并没有消失.我找到了一个有用的代码项目页面,但是它适用于事件处理程序.最后,如果我误解了我提到的链接,请告诉我一些我必须做的事情?如果有另一种绑定解决方案.
注意:我看过链接,我知道我必须摆脱以下元素: