如何使用更多项目来优化ItemsControl的加载时间? [英] How to optimize the loading time of the ItemsControl when it populated with more items?

查看:70
本文介绍了如何使用更多项目来优化ItemsControl的加载时间?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

大家好,

我们正在使用通过Itemsource填充80个子项的ItemsControl并自定义Item使用具有ComboBox和RadioButton等控件的ItemTemplate的外观,
加载页面需要10秒以上。谁能告诉我们如何优化加载时间。  请从下面找到代码示例:

代码示例:

XAML

< ItemsControl x Name =" sf手风琴"
  Grid.Row =" 1"
  ItemsSource =" { 装订
集合
}"  
  Horizo​​ntalAlignment =" Stretch"

<ItemsControl x:Name="sfaccordion"  Grid.Row="1"  ItemsSource="{Binding Collection}"   HorizontalAlignment="Stretch"

边距 =" 10,15,10,10" 填充 =" 0,0,0,0"
  ScrollViewer.VerticalScrollMode =" Enabled"
前景
=" #FFCCCCCC" BorderBrush ="#FF81F72C"
 >

Margin="10,15,10,10" Padding="0,0,0,0"  ScrollViewer.VerticalScrollMode="Enabled" Foreground="#FFCCCCCC" BorderBrush="#FF81F72C"  >

 

 

< ItemsControl.ItemTemplate >

< DataTemplate >

< ListView ItemsSource =" { 装订
ListePtControle
}"
  Padding =" 8,4,8,0" Horizo​​ntalAlignment =" Stretch"
FontSize
=" 18" Horizo​​ntalContentAlignment =" Stretch"
VerticalAlignment
=" Stretch" VerticalContentAlignment =" Stretch"
SelectionMode
=" Single"
 >

<ListView ItemsSource="{Binding ListePtControle}"  Padding="8,4,8,0" HorizontalAlignment="Stretch" FontSize="18" HorizontalContentAlignment="Stretch" VerticalAlignment="Stretch" VerticalContentAlignment="Stretch" SelectionMode="Single"  >

< ListView.ItemContainerStyle >

< 样式 TargetType =" ListViewItem">

< Setter 属性 =" Horizo​​ntalContentAlignment"
=" Stretch" />

< Setter 属性 =" VerticalContentAlignment"
=" Stretch" />

< / 样式 >

< / ListView.ItemContainerStyle >

< ListView.ItemTemplate >

< DataTemplate >

 

< 网格 Horizo​​ntalAlignment =" Stretch"
VerticalAlignment
=" Stretch">

 

< Grid.ColumnDefinitions >

< ColumnDefinition 宽度 =" *"
/>

< ColumnDefinition 宽度 =" Auto"
/>

< ColumnDefinition 宽度 =" Auto"
/>

< ColumnDefinition 宽度 =" Auto"
/>

< ColumnDefinition 宽度 =" Auto"
/>

< ColumnDefinition 宽度 =" Auto"
/>

< / Grid.ColumnDefinitions >

< TextBlock
  TextTrimming =" WordEllipsis" 边距 =" 10"
TextWrapping
=" Wrap"
 文字 =" { 装订
描述
}" Horizo​​ntalAlignment =" Stretch"
VerticalAlignment
="中心" />

<TextBlock  TextTrimming="WordEllipsis" Margin="10" TextWrapping="Wrap"  Text="{Binding Description}" HorizontalAlignment="Stretch" VerticalAlignment="Center"/>

< ComboBox Grid.Column =" 1"
保证金
=" 10" VerticalAlignment ="中心">

< ComboBoxItem 名称 =" Oui"
内容
=" Oui" />

< ComboBoxItem 名称 =" Non"
内容
=" Non" />

< / ComboBox >

< RadioButton Grid.Column =" 2"
保证金
=" 10" 内容 =" Sans Objet"
样式
=" { StaticResource likproRadioButtonCheckBoxLike }"
/>

<RadioButton Grid.Column="2" Margin="10" Content="Sans Objet" Style="{StaticResource likproRadioButtonCheckBoxLike}" />

< RadioButton Grid.Column =" 3"
保证金
=" 10" 内容 =" Non Conf"
样式
=" { StaticResource likproRadioButtonCheckBoxLike }" />

<RadioButton Grid.Column="3" Margin="10" Content="Non Conf" Style="{StaticResource likproRadioButtonCheckBoxLike}"/>

< RadioButton Grid.Column =" 4"
保证金
=" 10" 内容 =" Conforme"
样式
=" { StaticResource likproRadioButtonCheckBoxLike }"
/>

<RadioButton Grid.Column="4" Margin="10" Content="Conforme" Style="{StaticResource likproRadioButtonCheckBoxLike}" />

< RadioButton Grid.Column =" 5"
IsChecked
=" True" 内容 =" Non
Vu"
样式 =" { StaticResource
likproRadioButtonCheckBoxLike
}" />

<RadioButton Grid.Column="5" IsChecked="True" Content="Non Vu" Style="{StaticResource likproRadioButtonCheckBoxLike}" />

< / 网格 >

< / DataTemplate >

< / ListView.ItemTemplate >

< / ListView >

< / DataTemplate >

< / ItemsControl.ItemTemplate >

< / ItemsControl >

C#

公共 ViewModel()

{

Collection =
ObservableCollection < Chantier >();

listRue.Add( " Paris" );

listRue.Add( " la Vilaine" );

listRue.Add( " Rennes" );

listRue.Add( " Venise" );

listRue.Add( " Clichy" );

listRue.Add( "Vitré" );

listRue.Add( " Vitry" );

listRue.Add( " Pierre et Marie Curie" );

 

listPtC.Add( " Plomberie" );

listPtC.Add( " Chauffage" );

listPtC.Add( "Etanchéité" );

listPtC.Add( " Mise en oeuvre" );

listPtC.Add( " Pente" );

listPtC.Add( " Drainage" );

listPtC.Add( "NettoyageFactureué" );

listPtC.Add( " Aspect" );

listPtC.Add( " Dimensions" );

listPtC.Add( " Alignement" );

listPtC.Add( " Fixation" );

 

listNom.Add( " Wintringer" );

listNom.Add( " Martin" );

listNom.Add( " Dupond" );

listNom.Add( " Gass" );

listNom.Add( " Andre" );

listNom.Add( "Lelièvre" );

listNom.Add( " Muller" );

listNom.Add( " Vidal" );

listNom.Add( " Gamin" );

 

listPrenom.Add( " Jean" );

listPrenom.Add( "Kévin" );

listPrenom.Add( " Alex" );

listPrenom.Add( " Jacques" );

listPrenom.Add( " Thierry" );

listPrenom.Add( " Adrien" );

listPrenom.Add( " Romain" );

listPrenom.Add( " Alexandre" );

listPrenom.Add( " Thibault" );

 

listTel.Add( " 0299745188" ); listTel.Add( " 0299746298" );
listTel.Add(
" 0299743241" ); listTel.Add( " 0299743214" );
listTel.Add(
" 0299746574" < span style ="font-size:9.5pt; font-family:Consolas">);

listTel.Add("0299745188"); listTel.Add("0299746298"); listTel.Add("0299743241"); listTel.Add("0299743214"); listTel.Add("0299746574");

 

随机 rand =

随机 ();

 

for int
i = 1; i< = 10; i ++)

{

Chantier mod =

Chantier (){NomChantier =
"Chantier n°" +(i)};

mod.Adresse = 字符串 。格式(rand.Next(20)+
" ; rue de {0}" ,listRue [rand.Next(1,listRue.Count)]);

for int
j = 1; j< = 80; j ++)

mod.ListePtControle.Add( new
PointControle (j,
字符串 。格式( "PointdeContrôlen°"
+ j +
":{0}" ,listPtC [rand.Next(listPtC.Count)])));

mod.ListePtControle.Add(new PointControle(j, String.Format("Point de Contrôle n°" + j + " : {0}", listPtC[rand.Next(listPtC.Count)])));

 

Collection.Add(mod);

}

 

}

问候,

Vijayalakshmi VR

推荐答案

你好,

欢迎来到开发通用Windows应用程序
论坛!

请阅读粘性帖子,特别是  发布指南:主题行
标签
 &absp; Windows 10 SDK的已知问题和工具 ,
并且不要忘记在您的问题中添加标记。

Please read the sticky posts, especially the Guide to posting: subject line tags and Known Issues for Windows 10 SDK and Tools , and don't forget add tag to your question.

您应该使用数据虚拟化。 Pleas read these docs ListView and GridView UI optimization   ListView
and GridView data virtualization

You should use data virtualization. Pleas read these docs ListView and GridView UI optimization   ListView and GridView data virtualization


这篇关于如何使用更多项目来优化ItemsControl的加载时间?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆