Silverlight ListBoxItem Poor Performance
本文关键字:Performance Poor ListBoxItem Silverlight | 更新日期: 2023-09-27 18:12:20
我有一个对象列表,我循环并从中创建控件。然后,我将每个控件放入一个listboxitem的内容中,并将其添加到一个列表框中。
我的表现似乎很差。我注释了一些代码,似乎如果内容中充满了控件,性能就会消失。创建80个这样的列表框似乎需要4分钟,有人知道为什么或如何解决这个问题吗?
代码示例:
foreach (var service in e.Result)
{
ListBoxItem lbi = new ListBoxItem();
lbi.Tag = service.ServiceId;
SmallServicePanel ssp = new SmallServicePanel();
ssp.DisplayText = service.DisplayText;
ssp.ServiceTemplateId = service.ServiceTypeId;
ssp.ServiceId = service.ServiceId;
ssp.HexColor = service.HexColor;
lbi.Content = ssp;
MyListBoxControl.Items.Add(lbi);
}
不要迭代地创建控件(这对许多控件来说很慢),使用绑定到集合和DataTemplate来显示您的显示对象(SmallServicePanel
等)。
设置好后,它将使用ListBox的虚拟化特性(或者选择另一个提供虚拟化的控件)。这意味着实际控件的数量不会比显示的多太多,性能将会有一个飞跃。
让我们知道你怎么去。