Вот сценарий:
У меня есть ListView, с ItemsSource = ProjectModel.Instance.PagesModelsCollection;где PagesModelsCollection представляет собой ObservableCollection
В 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>
Проблема заключается в том, что ITemTemplate создается заново каждый раз, когда мы обновляем элементы.Таким образом, если у нас есть 100 Item в виде списка, будет создан другой 100 новый экземпляр ItemTemplate, если мы обновим элементы!
В результате, если мы добавим UIElements в один из экземпляров ItemTemplate, эти добавленные UIElementsбудет потеряно, потому что старый ITemTemplate будет заменен новым!
Как я могу сохранить экземпляр ItemTemplate после его создания ??