Voici un cinario:WPF: Comment GARDER la même instance ItemTemplate une fois créée?
J'ai un ListView, avec ItemsSource = ProjectModel.Instance.PagesModelsCollection; où PagesModelsCollection est un ObservableCollection
Dans la partie XAML ListView:
<ListView.ItemTemplate>
<DataTemplate x:Name="PagesViewDataTemplate">
<DataTemplate.Resources>
<Style x:Key="PageHostStyle" TargetType="{x:Type p:KPage}">
</Style>
</DataTemplate.Resources>
<StackPanel x:Name="MarginStack" Margin="50,50,50,50" >
<p:KPage x:Name="PageHost" >
</p:KPage>
</StackPanel>
</DataTemplate>
</ListView.ItemTemplate>
Le problème est ItemTemplate est recréé chaque fois que nous réactualiser cette liste. Donc, si nous avons 100 éléments dans l'affichage de la liste, une autre 100 nouvelle instance de ItemTemplate sera créée si nous actualisons les éléments! En conséquence, si nous ajoutons UIElements sur l'une des intentes ItemTemplate, ces UIElements ajoutés seront perdus, car l'ancien ITemTemplate est remplacé par un nouveau!
Comment puis-je GARDER l'instance ItemTemplate une fois qu'elle est créée ??
Merci pour la réponse, je ne suis pas re-créer la collection, mais, j'ai remarqué que l'actualisation des éléments de la vue de liste entraîne la recréation des modèles d'élément. –
Que voulez-vous dire "rafraîchir les articles?" Si vous détruisez et recréer les éléments de la collection, cela a à peu près le même effet: le modèle de données de chaque élément est recréé. –