Guardar el estado de WPF TreeView en la recarga de datos

Estoy usando TreeView para mostrar mis datos en la interfaz de usuario. Ahora mi aplicación se actualiza cada 5 segundos para que muestre los datos más actuales. ¿Hay alguna manera de guardar mi estado expandido o mi estado de vista colapsado incluso después de recargar la ventana? Porque si tengo una gran cantidad de datos y tomo más de 5 segundos para ir a los datos deseados, el TreeView simplemente se colapsa cada 5 segundos con la actualización de la ventana, y tengo que empezar desde cero.

       public ObservableCollection =new ObservableCollection(); 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); } } 

Resolví ese problema agregando las propiedades de IsExpanded y IsSelected al objeto al que estaba vinculado mi TreeView