我有一个 xaml 定义的组合框:
我填充此 ComboBox(Name1) 然后进行更新。我遇到内存泄漏。从网上的研究来看,这个 ComboBox 需要被处理,但我找不到 System.Windows.Control.ComboBox 的方法的参考。人口来自关闭时处理的 db。
使用 VS2010/2012 和 c#。我尝试在类中使用 Dispose 内联,错误消息说没有 System.Windows.Control.Combobox 的定义存在用于 Dispose。
disposecombobox 中的代码永远不会被执行。
我曾尝试使用 IDisposable,但均无济于事。IDisposable 已应用于包含更新代码的类以及 disposecombobox。
OnselectedItemChanged 被重复使用,但不是(我不认为)一个类,我怀疑它会导致错误。
在 button_update 上单击更新操作是在删除或插入时使用对组合框的引用执行的。但是,内存错误仍然发生在修改后,在 onSelectedItemChanged 之后没有引用组合框。
我刚刚将 Name1.Dispose 更改为 disposecombobox.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;
}