我的問題是這樣說:綁定到CollectionViewSource問題
我有兩個列表框:類型照片的
一個必然的集合稱爲照片和其他勢必被綁定到一個CollectionViewSource相同的照片集合。
listBox1中 - >照片(這裏爲ListBox勢必照片默認的CollectionView,當然並沒有直接將照片)。
ListBox2 - > CVS - >照片
兩個集合(默認一個和我的CVS)有一個過濾器,可以將他們顯示的項目從8個項目減少到5個項目。
現在我有2個標籤。一個綁定到照片對象的Count屬性,另一個綁定到Count屬性,其中源是cvs(我的CollectionViewSource)對象。
第一個標籤顯示數字8,因爲我看到它,這是因爲計數的照片保持8,即使我過濾它的默認CollectionViewSource。
第二標籤顯示數字5.
什麼我瞭解結合到CVS是WPF從CVS unwrapps源對象與路徑= Count是相關的基本對象,其是照片和所述這裏的數字也應該是8。
有人能解釋我在哪裏我worng?
謝謝!
1)我們正在談論CollectionViewSource對象,而不是他,也不CollectionViewSource.View確實當你想綁定到包裝對象(在這種情況下CollectionViewSource對象的屬性有一個Count屬性格式 2))設置了在綁定對象中將BindsDirectlyToSource綁定爲true。這意味着我們不想從CVS對象中解開我們的源對象,並且我們想綁定到CVS對象上的屬性。 3)我在我的書Nathan Adam的WPF Unleashed中讀到它。 – yanivps
那麼,事情是集合視圖的默認接口('ICollectionView')沒有任何計數屬性,但對於大多數源集合,您最終會得到一個實現。所以顯示的這個數字確實來自於我在我的答案中鏈接到的屬性,因爲綁定隱式地綁定到通常剛剛存在的'View.Count'。即使綁定到一個「IEnumerable」,綁定系統也會在它周圍創建一個「IList」,所以即使這樣也可能會在視圖中計數。 –
這將有一個計數屬性也可以從以下事實中推導出來:1.您不會自己創建視圖2。框架中只有一個類實現了'ICollectionView'並且是'CollectionView',它具有屬性。 –