【发布时间】:2009-10-13 23:44:25
【问题描述】:
我需要显示许多文本字符串的列表,每个字符串占一行。
我需要可以选择的项目,所以我不能使用 ItemsControl。
我只需要一个“列”而不需要排序,所以 DataGrid 可能太重了(???) 我需要多达 1000 个项目,所以 Listbox 可能太轻量级(???)
哪种 Silverlight 控件(或 Toolkit 控件)最适合此用途?
【问题讨论】:
标签: silverlight
我需要显示许多文本字符串的列表,每个字符串占一行。
我需要可以选择的项目,所以我不能使用 ItemsControl。
我只需要一个“列”而不需要排序,所以 DataGrid 可能太重了(???) 我需要多达 1000 个项目,所以 Listbox 可能太轻量级(???)
哪种 Silverlight 控件(或 Toolkit 控件)最适合此用途?
【问题讨论】:
标签: silverlight
的功能等价物确实是 .
如果您需要具有 Selection 的 ItemsControl,请使用从 Selector 继承的类之一(巧合的是,它本身继承自 ItemsControl):
1. 组合框
2. 列表框
3. TreeView(选择器 API)
4. AutoCompleteBox(选择器API)
所有这些都支持 ItemsControl.ItemTemplate=DataTemplate 的相同 ItemsControl API。
【讨论】:
DataGrid 由于虚拟化而具有良好的性能:
DataGrid 在处理大量数据时表现出色 因为它使用虚拟化,与任何其他 Silverlight 控件不同。这意味着 DataGrid 只为当前可见的数据保留内存对象,而不是 加载的整个数据集。这大大减少了内存开销,并且 允许它实际上容纳数千(甚至数百万)行。唯一的权衡是 DataGrid在滚动的时候会稍微慢一些,因为它需要清除当前的 一组 DataGridRow 对象并加载与新行对应的信息。
【讨论】:
我将添加 Silverlight Toolkit 中的 HeaderedItemsControl。这是一篇文章:HEADEREDCONTENTCONTROL & HEADEREDITEMSCONTROL
【讨论】: