我需要显示许多文本字符串的列表,每个字符串都在一行上。
我需要选择项目,所以我不能使用ItemsControl。
我只需要一个“列”而没有排序,所以DataGrid可能太重了(???) 我需要多达1000个项目,因此列表框可能太轻了(???)
哪种Silverlight控件(或Toolkit控件)最适合此用途?
答案 0 :(得分:7)
确实是功能相当的。
如果你需要一个具有Selection的ItemsControl,请使用继承自Selector的一个类(它同时继承自ItemsControl):
1. ComboBox
2. ListBox
3. TreeView(选择器API)
4. AutoCompleteBox(选择器API)
所有这些都支持ItemsControl.ItemTemplate = DataTemplate的相同ItemsControl API。
答案 1 :(得分:3)
DataGrid因虚拟化而具有良好的性能:
DataGrid拥有大量数据的出色性能 因为它使用虚拟化,不像任何其他Silverlight控件。这意味着 DataGrid仅保留当前可见数据的内存中对象,而不是 加载的整个数据集。这大大减少了内存开销 允许它实际上容纳数千(甚至数百万)行。唯一的权衡是 滚动时DataGrid略慢,因为它需要清除当前 一组DataGridRow对象并加载与新行对应的信息。
答案 2 :(得分:0)
我会从 Silverlight Toolkit 添加 HeaderedItemsControl 。这是一篇文章:HEADEREDCONTENTCONTROL & HEADEREDITEMSCONTROL