J'utilise TreeView pour afficher mes données dans l'interface utilisateur. Maintenant, mon application est actualisée toutes les 5 secondes afin qu'elle affiche les données les plus récentes. Existe-t-il un moyen de sauvegarder mon état étendu ou mon état replié de treeview même après le rechargement de la fenêtre? Parce que si j'ai une énorme quantité de données et que je prends plus de 5 secondes pour aller aux données désirées, le TreeView s'effondre juste après toutes les 5 secondes avec l'actualisation de la fenêtre, et je dois recommencer à zéro.Enregistrer l'état WPF TreeView sur le rechargement de données
<TreeView ItemsSource="{Binding Sections}" Grid.Row="1"
ItemTemplate="{StaticResource sectionTemplate}" >
<TreeView.Resources>
<Style TargetType="TreeViewItem">
<Setter Property="IsExpanded" Value="{Binding IsExpanded, Mode=TwoWay}" />
</Style>
</TreeView.Resources>
</TreeView>
public ObservableCollection<MyViewModel> =new ObservableCollection<MyViewModel>();
public bool IsExpanded
{
get { return (bool)GetValue(IsExpandedProperty); }
set { SetValue(IsExpandedProperty, value); }
}
public static readonly DependencyProperty IsExpandedProperty = DependencyProperty.Register("IsExpanded", typeof(bool), typeof(MyViewModel));
if (result.TotalResults > 0)
{
foreach (DomainObject obj in result.ResultSet)
{
AT myAT= (AT)obj;
arrdep.Add(myAT);
}
}
Vous recréez la collection Les articles toutes les 5 secondes? – Rachel
oui ... la fenêtre recharge/rafraîchit toutes les 5 secondes. Je l'ai donc comme un observablecollection qui est effacé, puis rempli avec des objets .. – developer
Eh bien, votre propriété IsExpanded est également effacée toutes les 5 secondes. Y a-t-il une chance que vous puissiez simplement mettre à jour les valeurs au lieu de les supprimer et de les recréer? – Rachel