Estoy usando TreeView para mostrar mis datos en la interfaz de usuario. Ahora mi aplicación se actualiza cada 5 segundos para que muestre la información más reciente. ¿Hay alguna forma de que pueda guardar mi estado expandido o el estado contraído de la vista en árbol incluso después de volver a cargar la ventana? Porque si tengo una gran cantidad de datos y tardo más de 5 segundos en ir a los datos deseados, el TreeView simplemente colapsa después de cada 5 segundos con la ventana de actualización, y tengo que empezar desde cero.Guardar estado WPF TreeView en la recarga de datos
<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);
}
}
¿Está volviendo a crear la colección Secciones cada 5 segundos? – Rachel
sí ... la ventana se recarga/actualiza cada 5 segundos. Así que lo tengo como una colección observable que se borra y luego se llena con objetos. – developer
Ah, entonces su propiedad IsExpanded también se está limpiando cada 5 segundos. ¿Hay alguna posibilidad de que simplemente actualice los valores en lugar de eliminarlos y volver a crearlos? – Rachel