System.Windows.Controls.ComboBox and dispose
本文关键字:and dispose ComboBox Controls Windows System | 更新日期: 2023-09-27 18:37:17
我有一个xaml定义的ComboBox:
我填充这个组合框(名称1),然后进行更新。我得到内存泄漏。从网络上的研究中,这个ComboBox需要处理,但我找不到System.Windows.Control.ComboBox方法的参考。人口来自关闭的db。
使用 VS2010/2012 和 C#。我尝试在类中使用内联处理,错误消息说不存在用于Dispose的System.Windows.Control.Combobox定义。
Disposecombobox中的代码永远不会作。
我尝试使用IDisposable,但都无济于事。 IDisposable被应用于包含更新代码的类以及disposecombobox。
OnselectedItemChanged 被重复使用,但不是(我不认为)一个类,我怀疑这会导致错误。
单击button_update更新操作是在删除或插入时引用组合框执行的。但是,内存错误仍然发生在修改时,该错误在选定项更改后不引用组合框。
我刚刚更改了名称1.处置到处置组合盒。Dispose() 现在得到错误: 非静态字段、方法或属性 'WpfApplication1.disposecombobox.Dispose()' 需要对象引用
我走在正确的路线上吗?如果是这样,有什么问题?
我该怎么做?
我的代码:
<ComboBox x:Name="Name1" HorizontalAlignment="Left" VerticalAlignment="Top" Width="286"
Margin="331,118,0,0" Height="30" IsDropDownOpen="True" Grid.Row="0" MaxDropDownHeight="60"
MinHeight="5" FontSize="20" SelectionChanged ="Name1_SelectedItemChanged"
TextBoxBase.TextChanged="Name1_TextChanged" IsEditable="True" IsReadOnly="False" TabIndex="1" />
和:
Name1.Dispose();
和
public class disposecombobox
{
private System.ComponentModel.Container components = null;
bool disposed;
public void Dispose()
{
this.Dispose(true);
GC.SuppressFinalize(this);
}
protected virtual void Dispose(bool disposing)
{
if (!disposed)
{
if (disposing)
{
if (components != null)
{
components.Dispose();
}
}
disposed = true;
}
use xaml code above
in codebehind
using System.ComponentModel;
define class myclass :Idisposable
{
private System.ComponentModel.Container components = null;
bool disposed;
method1
{
code
}
method
{
code
}
myclass newobj = new myclass();
newobj.Dispose();
public void Dispose()
{
this.Dispose(true);
GC.SuppressFinalize(this);
}
public virtual void Dispose(bool disposing)
{
if (!disposed)
{
if (disposing)
{
if (components != null)
{
components.Dispose();
}
}
disposed = true;
}
}
public interface IDisposable
{
void Dispose();
}
protected bool IsDisposed
{
get;
private set;
}
}
这似乎有效