我必须在窗口中查看树视图。两个树视图都绑定到一个可观察的集合“ReportStructure”。
两个树视图都显示了可观察集合的树级分层结构。我使用一个树视图,T1。选择我想在第二个树视图 T2 中显示的节点。
第一个树视图在每个叶子上都有复选框,当我选中或取消选中叶子时,它会在 T2 中显示或隐藏。为了让我这样做,我必须像这样重新查询绑定的collectionview
var IEquip = from eq in Report.Document.InspectionData.Equipments where eq.PartData.ReportIncluded = true
orderby eq.PartData.Order ascending
select eq;
EquipmentView = CollectionViewSource.GetDefaultView(IEquip);
EquipmentView.SortDescriptions.Add(
new SortDescription("PartData.Order", ListSortDirection.Ascending));
上面的“ReportStructure”是 Report.Document.InspectionData.Equipments。
我的问题是,当我重新查询 T2 的数据上下文时,T1 中的所有节点都折叠了
我的 XAML 我已经明确设置了 updatesourcetrigger 但它仍然崩溃。
<TreeView Grid.Row="5" IsEnabled="True" HorizontalContentAlignment="Stretch" Background="Transparent" BorderThickness="0"
ItemsSource="{Binding ReportStructure, UpdateSourceTrigger=Explicit}" HorizontalAlignment="Stretch" />
克隆将是一个解决方案,但随后我失去了从 T1 中的信息更新 T2 而不传递克隆的可能性