Tôi đang sử dụng TreeView để hiển thị dữ liệu của mình trong giao diện người dùng. Bây giờ, ứng dụng của tôi sẽ làm mới sau mỗi 5 giây để nó hiển thị dữ liệu mới nhất. Có cách nào tôi có thể lưu trạng thái mở rộng của tôi hoặc trạng thái thu nhỏ của treeview ngay cả sau khi tải lại cửa sổ? Bởi vì nếu tôi có một lượng dữ liệu khổng lồ và tôi mất hơn 5 giây để chuyển đến dữ liệu mong muốn, TreeView chỉ thu gọn sau mỗi 5 giây với làm mới cửa sổ và tôi phải bắt đầu lại từ đầu.Lưu trạng thái WPF TreeView khi tải lại dữ liệu
<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);
}
}
Bạn đang tái tạo lại bộ sưu tập mục mỗi 5 giây? – Rachel
có .. cửa sổ tải lại/làm mới sau mỗi 5 giây. Vì vậy, tôi có nó như là một observablecollection được xóa và sau đó điền với các đối tượng .. – developer
Oh cũng sau đó tài sản IsExpanded của bạn cũng được xóa mỗi 5 giây. Bất kỳ cơ hội bạn chỉ có thể cập nhật các giá trị thay vì xóa chúng và tạo lại chúng? – Rachel