我正在使用TreeView在UI中显示我的数据。现在我的应用程序每5秒刷新一次,以显示最新的数据。是否有一种方法可以在窗口重新加载后保存我的TreeView的展开状态或折叠状态?因为如果我有大量的数据,并且我需要花费超过5秒钟的时间才能到达所需的数据,那么每5秒钟窗口刷新时,TreeView就会折叠,我必须从头开始。
<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);
}
}
Sections
的副本,并将 TreeView 绑定到该副本。每当实际的Sections
集合发生更改时,构建一个东西将更改合并到副本中(不要重新创建副本-而是使用更改修改现有对象或添加/删除新项)。 - Rachel