我正在使用TreeView在UI中显示我的数据。现在我的应用程序每5秒刷新一次,以便显示最新数据。有没有办法我可以保存我的扩展状态或树视图的崩溃状态,即使在窗口重新加载后?因为如果我有大量的数据并且需要5秒多的时间才能获得所需的数据,那么TreeView只会在窗口刷新后每5秒钟崩溃一次,我必须从头开始。
<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);
}
}
答案 0 :(得分:14)
我通过将IsExpanded和IsSelected属性添加到我的TreeView绑定的对象来解决了这个问题
<Style TargetType="{x:Type TreeViewItem}">
<Setter Property="IsExpanded" Value="{Binding IsExpanded, Mode=TwoWay}" />
<Setter Property="IsSelected" Value="{Binding IsSelected, Mode=TwoWay}" />
</Style>