2011-06-16 84 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

相關問題