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);
            }

Silverlight ListBoxItem Poor Performance

不要迭代地创建控件(这对许多控件来说很慢),使用绑定到集合和DataTemplate来显示您的显示对象(SmallServicePanel等)。

设置好后,它将使用ListBox的虚拟化特性(或者选择另一个提供虚拟化的控件)。这意味着实际控件的数量不会比显示的多太多,性能将会有一个飞跃。

让我们知道你怎么去。