我有一個ComboBox作爲ObservableCollection作爲它的項目源。因此,組合框由標籤組成。涉及消失項目的奇怪問題
我已經得到了一些可以由用戶產生了用戶控件,而這些用戶控件的每個人都可以有許多組合框的。創建UserControl時,帶有UserControl名稱的標籤將添加到ObservableCollection中,因此每個ComboBox的項目源是ObservableCollection,現在都會添加最新的標籤。
一切工作正常,ComboBoxes填充爲新的用戶控件生成,如預期。然而,一個非常奇怪的問題是發生。
當用戶打開一個UserControl的ComboBox下拉菜單時,他可以正確看到所有標籤。
然後,當用戶打開另一個UserControl的ComboBox下拉菜單時,所有項目都以相同的方式顯示。現在奇怪的問題是,當用戶返回到前一個用戶控件的組合框時,項目消失。標籤仍然存在,因爲我已經調試過它並發現標籤仍然包含爲項目,但它就好像它們的高度已被設置爲0(在調試時發現它們的高度不是0,而是26事實)。
同量的標籤都包含,並且在上面的截圖可以看出,它們是可選的,但是不可見的(只是微小的藍色橫條可以看出,以表示它選擇的東西)。我不會在任何地方改變標籤的高度。
用戶已經評論說WPF通過它所代表的集合來緩存CollectionView,這樣所有的ComboBox都共享同一個CollectionView實例。因此,標籤只能有一個可視化父項,所以當用戶擴展第二個組合框時,它會從第一個組合框中分離標籤。
爲什麼downvote? – 2013-03-21 12:46:52