2011-06-16 83 views
2

我目前正在使用MVVM的应用程序,该应用程序需要在组合框中显示一些数据。这些绑定到ObservableCollections。数据存储在数据表中。正在更新Observable Collection

我有一些对象,例如名称和位置。每个组合框都包含名称或位置。名称列表旁边有一个数字,显示有多少人被称为该名称。位置确实相似。现在,当用户点击一个名称时,位置框中的数字会发生变化,以显示该名称中有多少人居住在这些位置。名称和位置对象完全独立,彼此不知情。如果用户点击某个位置,则会更新名称组合框。原始数据包含在具有名称和位置列的数据表中。 (最终项目中将有大约7个组合框,并且数据表将相应增加)。是否只是再次查询数据表并使用新数据清除并替换组合框中的对象?

对不起,长时间啰嗦的消息。

回答

0

如果列表完全更改,ObservableCollection几乎没有什么帮助。您可能会发现在ViewModel上使组合框具有ItemsSource属性变得更加容易,该选项返回IEnumerable<T>,并在选择特定项目框(设置了SelectedItem)时调用PropertyChanged

0

您将不得不手动同步您使用DataTable进行的任何可观察集合。单独更新DataTable将不会在ObservableCollection上产生更新。

但是,您可以直接绑定到DataTable的.DefaultView - 这起到绑定集合的作用,当您的DataTable中的数据发生更改时,它会更新视图。

您也可以考虑将Expressions与DataTable一起使用来执行小型查询/过滤,以使您的生活更轻松。

+0

我实际上必须从数据表中取出数据来创建人员和位置对象,然后将其添加到ObservableCollection中。 – 2011-06-16 19:53:27

相关问题