繁体   English   中英

绑定的BindingList更改时,DataGridView不更新

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM