[英]UI not updating when BindingList<> changes
我怀疑我是否会对此做出回应,但我已经无能为力了,所以希望如此。
我的表单上有一个BindingList<myObj>
和一个BindingSource
,它的DataSource
设置为 BindingList。 然后我有一个Resco Mobile Controls UIListView
显示这些数据。
启动时它显示得很好,数据绑定正确,但当我更新任何数据时,它永远不会显示在 UI 中。 我在myObj
实现了INotifyPropertyChanged
并且不知道我还应该寻找什么......
这一切都在带有 .NET CF 3.5 的 Windows CE 6 上。 任何想法都将不胜感激,因为我已经研究了一段时间了。
通常 BindingList 实现发生的事情是只通知添加和删除操作的更改,不会收到更新项目的通知。 我应该推荐使用 ObservableCollection 来通知项目更改。 类似的帖子在这里。 绑定列表和 UI 控件,未更新编辑问候,佩德罗·莫拉莱斯。
我解决了从主线程修改集合的问题,如果我从辅助线程更改它,则更改不会在网格中更新。 (甚至调用currencyManager Refresh 或DataGrid Refresh)
需要更新时调用:
bindingList.ResetBindings();
结合这里的一些答案让我找到了我的解决方案。 如果您不在 UI 线程上,则需要使用 Invoke 在 UI 线程上调用刷新。
Public Sub RefreshMyBoundList()
If (Me.InvokeRequired) Then
Me.Invoke(New Action(AddressOf RefreshMyBoundList))
Return
End If
MyBoundList.ResetBindings()
End Sub
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.