2011-10-18 50 views
0

在我的应用程序中,我使用LookUpEdit来绑定数据收集。LookUpEdit显示已删除的项目

List<myClass> lst=new List<myClass>(); 

void Init() 
{ 
    lst.Add(new myClass("One")); 
    LookUpEdit.DataSource=lst; 
} 


    class myClass() 
    { 
    public myClass(string name) 
    { 
     Name=name; 
    } 

    public ovveride ToString() 
    { 
     return Name; 
    } 
} 

我在LookUpEdit项目“One”中选择,然后从集合lst中删除此项目。但是在LookUpEdit项目中显示“One”。什么是一种方法,该删除的项目不显示?

回答

0

尝试使用,而不是列出的BindingList,它支持这些“事件”:

using System.ComponentModel; 

BindingList<MyClass> lst = new BindingList<MyClass>(); 
0

当您删除包含所有LookUpEdit数据DataTable的行,你必须再接受更改应用删除。假设您的DataSourceDataTable的示例:

int row = 5; // ROW TO DELETE 
BindingSource binding = lookUpEdit1.Properties.DataSource as BindingSource; 
DataTable dt = (binding.DataSource as DataSet).Tables[binding.DataMember]; 
dt.Rows.RemoveAt(row); 
dt.AcceptChanges();