ListBox 設 SelectionMode="Single",直接加入三個相同字串 "A string value"。**運行時可同時選取多個項目**,呈現多選行為。
<ListBox SelectionMode="Single">
<sys:String>A string value</sys:String>
<sys:String>A string value</sys:String>
<sys:String>A string value</sys:String>
</ListBox>
同樣加入三個相同字串,WinForms ListBox 正常單選。
對比截圖:
WPF ListBox 以物件參考比較項目身分。直接加入字串字面值時,編譯器最佳化導致三個項目指向**同一個字串物件**,選取邏輯誤判為同一項目被重複選取。
.NET 3.0 → 3.5 SP1 版本均存在此 Bug,微軟似不視為缺陷。建議使用 ListBoxItem 包裝或資料繫結集合避免。
這是 WPF Bug 系列的第一篇,後續將陸續揭露各控件缺陷,敬請期待。