我在程序中用了一个List<T>存储临时数据,数据是用按钮加输入框产生的。//构造函数中
{
this._items = new List<TestItem>();
this.listBox1.DataSource = this._items;
this.listBox1.DisplayMember = "ID";
this.listBox1.ValueMember = "Name";
}//Item 类
public class TestItem
{
private int id;
private string name; public int ID
{
get
{
return id;
}
set
{
id = value;
}
} public string Name
{
get
{
return name;
}
set
{
name = value;
}
}
}
把List换成自己派生的Collection也不行;是不是ListBox不支持绑定啊?自己维护数据太累
{
this._items = new List<TestItem>();
this.listBox1.DataSource = this._items;
this.listBox1.DisplayMember = "ID";
this.listBox1.ValueMember = "Name";
}//Item 类
public class TestItem
{
private int id;
private string name; public int ID
{
get
{
return id;
}
set
{
id = value;
}
} public string Name
{
get
{
return name;
}
set
{
name = value;
}
}
}
把List换成自己派生的Collection也不行;是不是ListBox不支持绑定啊?自己维护数据太累
//TestItem.cs
public class TestItem : INotifyPropertyChanged
{ private int id;
private string name;
public event PropertyChangedEventHandler PropertyChanged; public void NotifyPropertyChanged(string info)
{
if(PropertyChanged != null)
PropertyChanged(this, new PropertyChangedEventArgs(info));
} public int ID
{
get { return id; }
set
{
id = value;
NotifyPropertyChanged("ID");
}
}
public string Name
{
get { return name; }
set
{
name = value;
NotifyPropertyChanged("Name");
}
}
}// Form1.cs
private BindingList<TestItem> _items;
private int n = 1;
public Form1()
{
InitializeComponent();
}private void Form1_Load(object sender, EventArgs e)
{
_items = new BindingList<TestItem>();
listBox1.DataSource = _items;
listBox1.DisplayMember = "Name";
listBox1.ValueMember = "ID";
}private void button1_Click(object sender, EventArgs e)
{ _items.Add(new TestItem { ID = n++, Name = "name" + n });
}