C#绑定到SortedBindingList的DataGridView未显示排序
我已经实现了SortedBindingList类,如 然后,我成功地向其中添加了相同类型的对象 我在表单上有一个DataGridView,其BindingSource设置为列表。单击列标题时,列表将在SortedBindingList对象中排序,但是这种更改不会反映在DataGridView中。DataGridView上是否有需要设置的属性或需要订阅的事件C#绑定到SortedBindingList的DataGridView未显示排序,c#,datagridview,bindinglist,C#,Datagridview,Bindinglist,我已经实现了SortedBindingList类,如 然后,我成功地向其中添加了相同类型的对象 我在表单上有一个DataGridView,其BindingSource设置为列表。单击列标题时,列表将在SortedBindingList对象中排序,但是这种更改不会反映在DataGridView中。DataGridView上是否有需要设置的属性或需要订阅的事件 SortedBindingList<CustomObject> list = new SortedBindingList<
SortedBindingList<CustomObject> list = new SortedBindingList<CustomObject>();
//Add Objects to list
CustomObjectBindingSource.DataSource = list;
dataGridViewSource1.DataSource = CustomObjectBindingSource;
SortedBindingList=新的SortedBindingList();
//将对象添加到列表中
CustomObjectBindingSource.DataSource=列表;
dataGridViewSource1.DataSource=CustomObjectBindingSource;
如果我在Compare方法中的SortedBindingList代码中放置一个断点,在该代码中返回结果,我可以看到列表被正确排序,只是DataGridview没有显示正在排序的列表。我错过了什么
谢谢编辑:对不起!不知什么原因,我以为是asp.net 在你的情况下,你需要
BindingSource bs = new BindingSource();
bs.DataSource = bs;
dataGridView.DataSource = bs;
编辑2:
我只是用SortableBindingList类这样做过
SortableBindingList<Person> list = new SortableBindingList<Person>();
list.Add(new Person{Name = "abc",Email = "def"});
list.Add(new Person { Name = "bcd", Email = "aqz" });
dataGridView1.DataSource = list;
这对我很有用。谢谢你的回复,但我有点困惑。我在DataGridView或我将其设置为的BindingSource上看不到可用的DataBind()方法。您能更具体地说明哪个对象具有DataBind()方法吗?再次感谢StackOverflowException。这不是我已经在做的事情吗?唯一的区别是变量名与我所知道的不同。我假设,可能是错误的,bs.DataSource应该设置为列表,而不是返回到数据源本身。解决了它。。。有一个愚蠢的编码错误。列表=项目,因为列表很重要。我以不同的方式声明了这一点,甚至没有意识到这一点。
public class Person
{
public string Name { get; set; }
public string Email { get; set; }
}