[WPF Bug清单](序)与之(1)——可以多选的单选ListBox

.NET 3.0发布至今,.NET Framework相继发布了.NET 3.5.NET3.5 SP1。其间做了两个基于WPF的项目。发现现在的WPFBUG真的是不算少。给程序的开发带来了不少的困扰——为了避开BUG,而不得不多写很多代码。

 

这个“WPF BUG清单”系列,将列出笔者在项目中遇到过的WPF的各种问题,也许不一定是BUG,但是会造成开发上的不便。更感觉WPF的第一次发布实在有赶鸭子上架的嫌疑。很多东西都还没有做就发布了。(跟Silverlight 1.0一样)

 

先举个最简单的BUGWPFListBox选中项BUG

复制代码
 1<Window x:Class="ListBoxSelectionBug.DemoWindow"
 2    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
 3    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
 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
复制代码

 

上面的源代码中同时列出了WPFListBoxWinFormListBox作为对比。注意在WPFListBox上可是特意标示出它是一个单选列表框了哦。但是结果却是这个样子。

 

1. WPF ListBox Selection Bug

 

都是在ListBox里直接放几个String类型的值。结果WPF ListBox把几个值一样的string当成了同一个string,还变成了一个MultiSelectionListBox

 

.NET 3.0等到了.NET 3.5 SP1,这个BUG依然怡然自得地躺在WPF里。不知道是不是微软不认为这是一个BUG?

 

PS:请不要建议在ListBox里放ListBoxItem逃避这个问题。

 

在后面的几篇里,将会继续为大家揭露一些WPFBUG或是不便(基本上各个控件都有份哦。),更欢迎大家来补充自己发现的BUG,毕竟一个人的见识有限。希望能给大家一些提示。

下面是一部分计划。(实际顺序可能有不同。)

 

[WPF Bug清单](2)——RadioButtonIsChecked绑定失效

[WPF Bug清单](3)——暗中创建文件的打开文件对话框

[WPF Bug清单](4)——点击RadioButton的空白没有反应

[WPF Bug清单](5)——隐藏模态对话框后变成非模态

[WPF Bug清单](6)——ButtonIsCancel属性失效

[WPF Bug清单](7)——顽固的Error Template

[WPF Bug清单](8)——RowDefinitionMaxHeight在一定条件下失效

[WPF Bug清单](9)——消失的光标

 

……

posted on   南柯之石  阅读(5631)  评论(14编辑  收藏  举报

编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· [AI/GPT/综述] AI Agent的设计模式综述

导航

< 2008年12月 >
30 1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31 1 2 3
4 5 6 7 8 9 10

统计

点击右上角即可分享
微信分享提示