[英]DataGridView bound to BindingList does not refresh when value changed
[英]DataGridView not updating when bound BindingList is changed
问题:我有一个C# DataGridView
(Windows窗体)。 我已经将其DataSource设置为我在网上找到的自定义SortableBindingList
。 当我将项目添加到绑定列表中或从绑定列表中删除项目时,DataGridView不会更新,除非我重置了DataSource。 但是,如果我不使用此自定义的SortableBindingList并使用标准的BindingList,则它将按预期工作。 但是我需要能够排序。 我正在使用EntityFramework,如果有帮助的话。
我尝试过:使我的实体继承INotifyPropertyChanged
。 无论出于什么原因,这都没有帮助。 我还尝试了Web上的各种SortableBindingList,但没有找到一个能满足我的需要的列表。 我已经尝试修改我发现的这个,到目前为止还没有运气。 如果不将该帖子加长10,000行,很难具体说明。
要求:一个可工作的SortableBindingList,可以以编程方式对其进行排序并具有绑定(从列表中添加/删除反映在DataGridView上)。 理想情况下,它的用法类似于我在下面的代码中的用法(以防止过多的重构)。 或针对我正在做的错误进行一些修复,因为这可能确实很明显。 我正在使用的SortableBindingList摘自本文 。
一些代码可能会有所帮助:
使用以下内容可以正确绑定并按预期添加/删除,但是我无法排序:
this.binding.DataSource = this.context.SomeEntityList.Local.ToBindingList();
其中“ SomeEntityList”的类型为IDbSet<SomeEntity>
-
使用以下任何代码都可以对我进行排序,但不能按预期进行添加/删除:
this.binding.DataSouce = new SortableBindingList<SomeEntity>(this.context.SomeEntityList);
this.binding.DataSouce = new SortableBindingList<SomeEntity>(this.context.SomeEntityList.ToList());
this.binding.DataSouce = new SortableBindingList<SomeEntity>(this.context.SomeEntityList.Local);
this.binding.DataSouce = new SortableBindingList<SomeEntity>(this.context.SomeEntityList.Local.ToList());
this.binding.DataSouce = new SortableBindingList<SomeEntity>(this.context.SomeEntityList.Local.ToBindingList());
-
我像这样设置DataGridView的DataSouce:
this.DataGridView.DataSouce = this.binding;
-
任何帮助深表感谢!
谢谢,安迪
我感到您很痛苦,我在同一个问题上挣扎了很多小时。 事实证明,无论排序对象是SortableBindingList还是BindingList,都无法对自定义对象列表进行排序。
尝试改用BindingListView: http : //blw.sourceforge.net/使用BindingListView作为DataGridView的资源。 这将使您具有可排序的列表,并且在添加或删除项目之后进行更新不会有任何问题。
让我知道您是否需要示例解决方案。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.