2011-07-15 61 views
0

我有2列表框被界定爲同一來源的照片(這是照片的集合)WPF - 改變一個列表框的項目爲了影響其他列表框

我知道,有一種方式來獲得的的CollectionView來源(即照片),然後對此CollectionView進行的任何更改(例如排序)都將影響與該來源綁定的所有目標。

我無法理解的是爲什麼當我改變一個ListBox的SortDescriptions時,我在另一個ListBox上看到更改。

myListBox1.Items.SortDescriptions.Add(new SortDescription(「ProperyName」,ListDirection.Ascending));

使得無論myListBox1和myListBox2改變..

什麼想法? 謝謝!

回答

4

MSDN

所有藏品都有一個默認的CollectionView。 WPF始終綁定到一個 視圖,而不是一個集合。如果直接綁定到集合,則WPF實際綁定到該集合的默認視圖。 此 默認視圖由​​與集合的所有綁定共享,這會導致 與集合的所有直接綁定共享一個默認視圖的排序,篩選, 組和當前項目特性。 或者,您可以使用 CollectionViewSource類在可擴展的 應用程序標記語言(XAML)或代碼中創建集合的視圖,並將控件綁定到該視圖。

您可能create a CollectionViewSource in XAML爲兩個資源,並將您的ListBoxes綁定到這些視圖,而不是直接集合。

+0

因此訪問myListBox1.Items.SortDescriptions屬性與訪問ICollectionView.SortDescriptions屬性完全相同,其中IColectionView是名爲Photos和myListBox1的集合的默認視圖綁定到Photos? – yanivps

+0

是的,這是正確的 – devdigital