WPF ListBox与ComboBox的比较

10
我正在使用C#和WPF开发应用程序,需要绑定字典并显示键值对。ListBox和ComboBox有何不同?使用其中一个的可能优缺点是什么?
ListBox可以同时显示多个项目,而ComboBox只能显示一个项目。如果需要允许用户选择多个项目,则必须使用ListBox。然而,如果您希望用户从列表中选择单个项目,则ComboBox可能更适合。 ListBox比ComboBox更占空间,ComboBox具有更小的视觉占用量。
1个回答

11
一个ComboBox是列表框和编辑控件的组合。一个简单的ComboBox只是一个带有编辑控件的列表框;你可以从列表中选择或者输入。一个样式为"下拉菜单"的ComboBox也是一样,但是列表框直到你点击下拉标志才会显示出来。你可以展开并选择或者在编辑控件中直接输入。一个样式为"下拉列表"的ComboBox类似,但是你只能从呈现的列表中选择 - 你不能在编辑控件中输入你想要的内容。
基本上,一个ComboBox(非简单样式)占用的屏幕空间比完整的列表框少得多。
来源:https://social.msdn.microsoft.com/Forums/en-US/3b5be60d-36c5-49aa-b49e-aa8625f53b62/what-is-the-difference-between-listbox-and-combobox-control?forum=netfxcompact 列表框:
  1. 占用更多空间,但可以显示多个值。

  2. 我们可以选择多个项目。

  3. 我们可以在列表框中使用复选框。

组合框:

  1. 占用较少的空间,但仅显示一个可见值。

  2. 无法进行多重选择。

  3. 不能在组合框中使用复选框。

还可以查看http://devproconnections.com/aspnet/dropdownlist-listbox-and-combobox-whats-difference


非常感谢!现在有没有两者之间的折衷方案呢?比如说,我想显示所有值,但我不需要用户选择任何东西。只需要一个基本的控件来绑定字典即可。 - Verbal Kint
如果您不希望用户选择任何内容,那么为什么需要使用列表框或组合框呢?它通常用于用户可以选择特定项目并且您可以显示有关所选项目的某些信息的情况下。如果您不希望用户选择项目,则只需创建一个网格并显示数据即可。 - ViVi
明白了,谢谢!虽然绑定到集合需要一个数据网格而不是普通的网格。 - Verbal Kint
如果您修改组合框的模板,@IDisposable 多选是可能的。 - adminSoftDK
@adminSoftDK:是的,我同意。我是在说基本区别。我们可以定义模板来改变外观和行为。 - ViVi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接