我有一个列表框,其中的项目绑定到ObservableCollection.
现在,从viewModel中,我需要更新UI.我没有从我的视图模型中引用列表框.
如果我从我的ObservableCollection中删除或添加一个项目,ui会更新.
基于一些其他逻辑,我需要更新UI ...但ObservableCollection是相同的.
如何在不添加或删除ObservableCollection中的项目的情况下更新UI?
谢谢
Mic*_*eld 18
如果您需要更改用户界面,因为你编辑的项目在您的收藏,那么你应该安排这些项目实现INotifyPropertyChanged接口.如果集合中的对象具有PropertyChanged事件,则UI将从单个项目中侦听该事件.(如果可能的话,你也可以改变你的项目集合中是DependencyObjects有DependencyProperties,其实现同样的目标.)
如果您真的需要在没有关于集合的任何内容更改时触发UI更新,那么执行此操作的方法是手动引发CollectionChanged事件.这不能用ObservableCollection<>as 来完成,但你可以从该类派生一个新的集合,并protected OnCollectionChanged从一些新的方法中调用该public方法.
Noc*_*tis 15
我有一个类似的问题,我想改变一个项目的背景,但显然项目和集合都没有改变.
这是通过致电:
CollectionViewSource.GetDefaultView(your_collection_name).Refresh();
Run Code Online (Sandbox Code Playgroud)
这会从视图模型刷新视图而不更改集合
| 归档时间: |
|
| 查看次数: |
11729 次 |
| 最近记录: |