2010-07-06 79 views
1

我創建了一個Listview原型應用程序,通過它的itemsource屬性以編程方式綁定到ObservableCollection。一切都很好,直到一天前ListView在第一次引發事件後停止提升SelectionChanged事件。例如。在ListView中選擇一行,引發SelectionChanged事件,UI選擇ListView中的第一行,無論你做什麼,然後任何嘗試選擇行對ListView都沒有影響,無論是在選擇點擊行或舉辦活動。第一次引發事件後,WPF ListView不會引發SelectionChanged事件

到目前爲止,我已經確定,如果我從窗口中刪除所有超級代碼,它並不能解決問題。如果我將代碼移植到新項目中,它不能解決問題。但是,如果我在新項目中手動重新實現相同的代碼,問題不會出現,但與Beyond Compare相比,代碼似乎完全相同。

我還通過清除SelectionChanged事件處理程序中的listview中的所有選擇來部分消除問題,這似乎解決了問題,但意味着行從不出現在Listview中選定的位置。

我在這個機智的結尾。

+1

你必須告訴更多關於你的情況。你如何填充'ListView'?即如果你設置了'ItemsSource',那麼這個集合是什麼?它裏面的元素的類型是什麼?還要注意'ItemsControl'在顯示相同項目或項目的多個實例時存在問題(您是否覆蓋了 .Equals?)。 – repka 2010-07-06 23:30:33

回答

0

如果您正在使用具有值類型的重複項(也包括參考類型字符串),則可能會在比較值時出現此問題。你可以將你的物品包裝在一個類中,以顯示物品不同。但我不知道它爲什麼在您創建的新應用程序中起作用。也許你可以改變itemssource。