Sto usando TreeView per visualizzare i miei dati nell'interfaccia utente. Ora la mia applicazione si aggiorna ogni 5 secondi in modo che mostri i dati più recenti. C'è un modo in cui posso salvare il mio stato espanso o lo stato di visualizzazione ad albero crollato anche dopo il caricamento della finestra? Perché se ho una grande quantità di dati e ho bisogno di più di 5 secondi per andare ai dati desiderati, TreeView crolla solo dopo ogni 5 secondi con l'aggiornamento della finestra, e devo ricominciare da capo.Salvare lo stato WPF TreeView sui dati di ricarica
<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);
}
}
State ricreando la collezione Sezioni ogni 5 secondi? – Rachel
sì..la finestra si ricarica/si aggiorna ogni 5 secondi. Quindi l'ho come una raccolta di osservazioni che viene cancellata e quindi riempita di oggetti .. – developer
Oh bene, allora la proprietà IsExpanded viene cancellata ogni 5 secondi. Qualche possibilità di aggiornare i valori invece di eliminarli e ricrearli? – Rachel