【问题标题】:Is there a silverlight repeater control (like in ASP.NET)?是否有 Silverlight 中继器控件(如在 ASP.NET 中)?
【发布时间】:2009-10-13 23:44:25
【问题描述】:

我需要显示许多文本字符串的列表,每个字符串占一行。

我需要可以选择的项目,所以我不能使用 ItemsControl。

我只需要一个“列”而不需要排序,所以 DataGrid 可能太重了(???) 我需要多达 1000 个项目,所以 Listbox 可能太轻量级(???)

哪种 Silverlight 控件(或 Toolkit 控件)最适合此用途?

【问题讨论】:

    标签: silverlight


    【解决方案1】:

    的功能等价物确实是 . 如果您需要具有 Selection 的 ItemsControl,请使用从 Selector 继承的类之一(巧合的是,它本身继承自 ItemsControl):
    1. 组合框
    2. 列表框
    3. TreeView(选择器 API)
    4. AutoCompleteBox(选择器API)

    所有这些都支持 ItemsControl.ItemTemplate=DataTemplate 的相同 ItemsControl API。

    【讨论】:

    • 有没有办法禁用 ListBox 的选择模式?
    【解决方案2】:

    DataGrid 由于虚拟化而具有良好的性能:

    DataGrid 在处理大量数据时表现出色 因为它使用虚拟化,与任何其他 Silverlight 控件不同。这意味着 DataGrid 只为当前可见的数据保留内存对象,而不是 加载的整个数据集。这大大减少了内存开销,并且 允许它实际上容纳数千(甚至数百万)行。唯一的权衡是 DataGrid在滚动的时候会稍微慢一些,因为它需要清除当前的 一组 DataGridRow 对象并加载与新行对应的信息。

    【讨论】:

      【解决方案3】:

      我将添加 Silverlight Toolkit 中的 HeaderedItemsControl。这是一篇文章:HEADEREDCONTENTCONTROL & HEADEREDITEMSCONTROL

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-11-14
        相关资源
        最近更新 更多