2011-10-06 41 views
0

我收到了一個ListViewItemsSource集合,其中ObservableCollection<string>設置。 而且,ListView包含在其ListView.Items.Filter屬性過濾器(作爲Predicate<bool,object>如何強制ListView手動重新使用它的.Items.Filter視圖?

所以我們可以說有,當過濾器可以改變它的行爲不改變自己的參考條件。

而當這些條件改變我需要讓ListView知道它有根據新的過濾器,以重建其觀點。

我已經想通唯一的解決辦法是

ListView.Items.Filter = ListView.Items.Filter; 

這是錯誤的,但它仍然有效。使用過濾器再次更新每個項目。

那麼有沒有正確的解決方案呢?

回答

1

您需要獲取ListView綁定的收集視圖(ICollectionView)和Refresh()它。這是我不清楚你是如何綁定到您的數據,但您可以:

  • 綁定到一個集合視圖明確
  • 綁定到一個集合,具有控制自動綁定到默認的集合視圖

這聽起來像你已經做了後者,在這種情況下,你可以使用:

CollectionViewSource.GetDefaultView(theCollection).Refresh(); 
+0

我必將像這樣:'ListView.ItemsSource =新的ObservableCollection (.. );' – AgentFire

+0

謝謝,這對我有效。 – AgentFire

+0

如果它適合您,請將其標記爲答案。 Tkcr –

相關問題