[英]BindingList<T> is not showing up in the datagridview it is bound too
我四处张望,似乎无法弄清楚为什么我的C#Windows Form应用程序无法正常工作。
所以我有一些私有成员的Item类:
public class Item : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
private string name_;
public string name {
get { return name_;}
set
{
name_ = value;
this.NotifyPropertyChanged("Name");
}
}
private void NotifyPropertyChanged(string name)
{
if (PropertyChanged != null)
PropertyChanged(this, new PropertyChangedEventArgs(name));
}
}
然后我有另一个类,它包含项的绑定列表
public class ItemList
{
public BindingList<Item> listItems { get; set; }
// Default constructor
public ItemList()
{
listItems = new BindingList<Item>();
}
public BindingList<Item> returnList()
{
return listItems;
}
public void addItem(Item newItem)
{
listItems.Add(newItem);
}
}
然后我有一个BindingSource,它从listItems链接到datagridview
问题是我正在将Items添加到listItems中,并且它们未显示在datagridview中。 datagridview正在查看我的所有数据成员并为其创建列,但未显示项目。
试试这个,我有一种感觉,您一直在添加ItemList实例而不是listItems。
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
ItemList list = new ItemList();
list.listItems.Add(new Item() { name = "Sample" });
list.listItems.Add(new Item() { name = "Sample" });
list.listItems.Add(new Item() { name = "Sample" });
list.listItems.Add(new Item() { name = "Sample" });
list.listItems.Add(new Item() { name = "Sample" });
list.listItems.Add(new Item() { name = "Sample" });
dataGridView1.DataSource = list.listItems;
}
}
public class Item : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
private string name_;
public string name
{
get { return name_; }
set
{
name_ = value;
this.NotifyPropertyChanged("name");
}
}
private void NotifyPropertyChanged(string name)
{
if (PropertyChanged != null)
PropertyChanged(this, new PropertyChangedEventArgs(name));
}
}
public class ItemList
{
public BindingList<Item> listItems { get; set; }
// Default constructor
public ItemList()
{
listItems = new BindingList<Item>();
}
public BindingList<Item> returnList()
{
return listItems;
}
public void addItem(Item newItem)
{
listItems.Add(newItem);
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.