C# System.Windows.Controls.ComboBox和dispose

C# System.Windows.Controls.ComboBox和dispose,c#,windows,combobox,controls,dispose,C#,Windows,Combobox,Controls,Dispose,我有一个xaml定义的组合框: 我填充这个组合框(名称1),然后进行更新。我的内存泄漏了。通过对web的研究,需要处理此组合框,但我找不到System.Windows.Control.ComboBox方法的参考。人口来自数据库,该数据库在关闭时进行处理 使用VS2010/2012和c#。 我已尝试在类中使用Dispose内联,错误消息显示Dispose不存在System.Windows.Control.Combobox的定义 disposecombobox中的代码永远不会执行操作 我试过使用I

我有一个xaml定义的组合框:

我填充这个组合框(名称1),然后进行更新。我的内存泄漏了。通过对web的研究,需要处理此组合框,但我找不到System.Windows.Control.ComboBox方法的参考。人口来自数据库,该数据库在关闭时进行处理

使用VS2010/2012和c#。 我已尝试在类中使用Dispose内联,错误消息显示Dispose不存在System.Windows.Control.Combobox的定义

disposecombobox中的代码永远不会执行操作

我试过使用IDisposable,但都没有用。IDisposable应用于包含更新代码的类以及disposecombobox

OnselectedItemChanged被反复使用,但不是(我不认为)类,我怀疑这是导致错误的原因

在按钮更新时,单击更新操作会在删除或插入时引用组合框。但是,内存错误仍然发生在amend上,它在onSelectedItemChanged之后没有引用组合框

我刚刚将名称1.Dispose更改为disposecombobox.Dispose(),现在得到错误: 非静态字段、方法或属性“WPFAApplication1.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" />

}


这似乎有效

您好,欢迎来到SO!请阅读关于如何提出好问题的说明。同时,您可以向我们提供一些代码,显示到目前为止您所尝试的内容。Name1.Dispose();和公共类disposecombobox{private System.ComponentModel.Container components=null;bool disposed;public void Dispose(){this.Dispose(true);GC.SuppressFinalize(this);受保护的虚拟void Dispose(bool disposing){if(!disposed){if(disposing){if(components!=null){components.Dispose();}}}disposed=true;您可以删除您的推荐并编辑您的问题。
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;
  }