Listview ItemsSource - 复杂 -

时间:2010-11-15 08:58:15

标签: c# wpf

我正在VS2010中使用C#构建WPF应用程序。

我有一个数据库 - 我们称之为mydatabase.mdf - 我已将其正确附加到我的项目并构建了DataContext

现在我的用户界面中有一个ListView来显示此数据库中特定表的项目,但问题是每次将新项目添加到我的数据库时我都希望这个ListView更新其项目。

我已经尝试过了:

listView.items.refresh()

但它不起作用。

我已经尝试了一些东西,即每次添加新项目时在这个数据库表上应用查询,并且此查询将撤消所有元素;然后我做:

listview.itemssource = myquery

但它也没有用。

请帮助我,请联系我们

1 个答案:

答案 0 :(得分:1)

添加新项目时,数据库无法通知客户端。

当您的客户将项目添加到数据库时,ObservableCollection将解决您的问题。它实现了INotifyCollectionChanged,并通知UI有关对集合所做的更改(在客户端上)。

当其他客户端也写入数据库时​​,您唯一的机会是定期轮询数据库(重新查询数据库)并手动将delta(更改)应用于ObservableCollection,或者完全重新绑定数据源(排序等可能会得到)丢失然后刷新ItemsCollection,以防你不使用ObservableCollection或实现INotifyCollectionChanged的东西。

根据您的架构,Remoting-Service可以为所有客户端轮询数据库,然后通知所有客户端。如果民意调查成为瓶颈,这可能会有所帮助。