程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> 關於.NET >> WPF Bug清單(序)與之(1)——可以多選的單選ListBox

WPF Bug清單(序)與之(1)——可以多選的單選ListBox

編輯:關於.NET

從.NET 3.0發布至今,.NET Framework相繼發布了.NET 3.5和.NET3.5 SP1。其間做了兩個基於WPF的項目。發現現在的WPF的BUG真的是不算少。給程序的開發帶來了不少的困擾——為了避開BUG,而不得不多寫很多代碼。

這個“WPF BUG清單”系列,將列出筆者在項目中遇到過的WPF的各種問題,也許不一定是BUG,但是會造成開發上的不便。更感覺WPF的第一次發布實在有趕鴨子上架的嫌疑。很多東西都還沒有做就發布了。(跟Silverlight 1.0一樣)

先舉個最簡單的BUG。WPF中ListBox選中項BUG。

1<Window x:Class="ListBoxSelectionBug.DemoWindow"
2  xmlns=""
3  xmlns:x=""
4  xmlns:sys="clr-namespace:System;assembly=mscorlib"
5  xmlns:forms="clr-namespace:System.Windows.Forms;assembly=System.Windows.Forms"
6  Title="ListBox Selection Bug Demo" Height="300" Width="300">
7  <DockPanel Margin="12">
8    <Label Content="隨便點點,他們可應該都是單選的哦。"
9        DockPanel.Dock="Top"/>
10    <GroupBox Header="WPF ListBox"
11         DockPanel.Dock="Top"
12         Padding="9" Margin="0,0,0,12">
13      <ListBox SelectionMode="Single">
14        <sys:String>A string value</sys:String>
15        <sys:String>A string value</sys:String>
16        <sys:String>A string value</sys:String>
17      </ListBox>
18    </GroupBox>
19    <GroupBox Header="Forms ListBox" Padding="9">
20      <WindowsFormsHost>
21        <forms:ListBox>
22          <forms:ListBox.Items>
23            <sys:String>A string</sys:String>
24            <sys:String>A string</sys:String>
25            <sys:String>A string</sys:String>
26          </forms:ListBox.Items>
27        </forms:ListBox>
28      </WindowsFormsHost>
29    </GroupBox>
30  </DockPanel>
31</Window>
32

上面的源代碼中同時列出了WPF的ListBox和WinForm的ListBox作為對比。注意在WPF的ListBox上可是特意標示出它是一個單選列表框了哦。但是結果卻是這個樣子。

圖1. WPF ListBox Selection Bug

都是在ListBox裡直接放幾個String類型的值。結果WPF ListBox把幾個值一樣的string當成了同一個string,還變成了一個MultiSelection的ListBox。

從.NET 3.0等到了.NET 3.5 SP1,這個BUG依然怡然自得地躺在WPF裡。不知道是不是微軟不認為這是一個BUG?

PS:請不要建議在ListBox裡放ListBoxItem來逃避這個問題。

在後面的幾篇裡,將會繼續為大家揭露一些WPF的BUG或是不便(基本上各個控件都有份哦。),更歡迎大家來補充自己發現的BUG,畢竟一個人的見識有限。希望能給大家一些提示。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved