我目前正在使用 WPF 和数据绑定来显示/更新数据。我有一个 TreeView 和一个 ItemTemplate。
<TreeView ItemsSource="{StaticResource Labels}">
<TreeView.ItemTemplate>
<DataTemplate>
<Grid>
<TreeViewItem Header="{Binding Key}">
<TextBlock Text="{Binding Value}" />
</TreeViewItem>
</Grid>
</DataTemplate>
</TreeView.ItemTemplate>
</TreeView>
“Labels”是我在“InitializeComponent”之前分配的字典。问题是每次我更改数据并在 TreeView 上调用“刷新”时,所有树视图项都会返回到折叠状态,即使它们已展开。
如何使展开的项目保持展开状态?
编辑:对于其他尝试这样做的人,我只是要放置对我有用的 XAML(因为我在网上查找时很难找到它)。我创建了一个帮助类,将 IsExpanded 作为数据源的一部分。
<TreeView ItemsSource="{StaticResource Labels}">
<TreeView.ItemTemplate>
<DataTemplate>
<Grid>
<TreeViewItem Header="{Binding Key}"
IsExpanded="{Binding Path=Value.IsExpanded, Mode=TwoWay}">
<TextBlock Text="{Binding Value.RealValue}" />
</TreeViewItem>
</Grid>
</DataTemplate>
</TreeView.ItemTemplate>
</TreeView>