C# BindingList时未更新UI<&燃气轮机;变化

C# BindingList时未更新UI<&燃气轮机;变化,c#,.net,compact-framework,bindinglist,C#,.net,Compact Framework,Bindinglist,我怀疑我是否能得到这样的回应,但我已经不知所措了,希望如此 我的表单上有一个BindingList和一个BindingSource,它的DataSource设置为BindingList。然后,我有一个ui列表视图显示此数据 启动时,它显示得很好,数据绑定正确,但当我更新任何数据时,它永远不会显示在UI中。我在myObj上实现了inotifypropertychange,不知道我还应该寻找什么 这一切都是在WindowsCE6和.NETCF3.5上完成的。如果您有任何想法,我将不胜感激,因为我已经

我怀疑我是否能得到这样的回应,但我已经不知所措了,希望如此

我的表单上有一个
BindingList
和一个
BindingSource
,它的
DataSource
设置为BindingList。然后,我有一个
ui列表视图
显示此数据

启动时,它显示得很好,数据绑定正确,但当我更新任何数据时,它永远不会显示在UI中。我在
myObj
上实现了
inotifypropertychange
,不知道我还应该寻找什么


这一切都是在WindowsCE6和.NETCF3.5上完成的。如果您有任何想法,我将不胜感激,因为我已经看了一段时间了。

我将尝试一下,因为您可能不会获得大量的流量

您是否尝试过获取CurrencyManager并调用其刷新方法?见下文:


通常,BindingList实现只会通知添加和删除操作的更改,而不会在项目更新时收到通知。我建议使用ObservableCollection来通知项目更改。 这里也有类似的帖子。
尊敬的Pedro Morales。

我通过修改主线程中的集合解决了这个问题,如果我从次线程中更改集合,则更改不会在网格中更新。(甚至调用currencyManager刷新或DataGrid刷新)

需要更新时调用:

bindingList.ResetBindings();

结合这里的几个答案,我找到了我的解决方案。如果您不在UI线程上,则需要使用调用来调用UI线程上的刷新

Public Sub RefreshMyBoundList()
    If (Me.InvokeRequired) Then
        Me.Invoke(New Action(AddressOf RefreshMyBoundList))
        Return
    End If
    MyBoundList.ResetBindings()
End Sub

你是不是碰巧从WPF背景进入了CF上的WinForms?是的,但我使用WinForms的数量相当可观,只是没有CF…谢谢,我可能错了,但我不认为,
observeCollection
是.NET CF中的一个选项。。。。