我正在VS2010中使用C#构建WPF应用程序。
我有一个数据库 - 我们称之为mydatabase.mdf
- 我已将其正确附加到我的项目并构建了DataContext
。
现在我的用户界面中有一个ListView
来显示此数据库中特定表的项目,但问题是每次将新项目添加到我的数据库时我都希望这个ListView
更新其项目。
我已经尝试过了:
listView.items.refresh()
但它不起作用。
我已经尝试了一些东西,即每次添加新项目时在这个数据库表上应用查询,并且此查询将撤消所有元素;然后我做:
listview.itemssource = myquery
但它也没有用。
请帮助我,请联系我们
答案 0 :(得分:1)
添加新项目时,数据库无法通知客户端。
当您的客户将项目添加到数据库时,ObservableCollection将解决您的问题。它实现了INotifyCollectionChanged,并通知UI有关对集合所做的更改(在客户端上)。
当其他客户端也写入数据库时,您唯一的机会是定期轮询数据库(重新查询数据库)并手动将delta(更改)应用于ObservableCollection,或者完全重新绑定数据源(排序等可能会得到)丢失然后刷新ItemsCollection,以防你不使用ObservableCollection或实现INotifyCollectionChanged的东西。
根据您的架构,Remoting-Service可以为所有客户端轮询数据库,然后通知所有客户端。如果民意调查成为瓶颈,这可能会有所帮助。