【发布时间】:2020-03-06 23:27:48
【问题描述】:
我得到了一个设备列表。这些只有名称和 DeviceInfo 列表。 这些 DeviceInfos 有一个键和值。现在我想构建一个树视图,它显示每个设备并将所有值作为树视图项。而且我不知道如何在 XAML 中绑定它。
我正在使用 .NET Framework 4.8
public class Device
{
public string Name {get; set;}
public List<DeviceInfo> deviceInfos {get; set;}
}
public class DeviceInfo
{
public int key {get; set;}
public value values {get; set;}
}
public class values
{
public string Type {get; set;}
public string TypeName {get; set;}
}
public List<Device> devices {get; set;}
<TreeView ItemsSource="{Binding devices}" Margin="2">
<TreeView.ItemTemplate>
<HierarchicalDataTemplate ItemsSource="{Binding Device}">
<TreeViewItem Header="{Binding name}">
<TreeViewItem ItemsSource="{Binding deviceInfos}" Header="{Binding TypeName}">
</TreeViewItem>
</TreeViewItem>
</HierarchicalDataTemplate>
</TreeView.ItemTemplate>
</TreeView>
计划的结果应该是这样的:
+ Device
+ DeviceInfo.Value.Type
DeviceInfo.ValueTypeName
+ Device3
+ DeviceInfo.Value.Type
DeviceInfo.ValueTypeName
+ DeviceInfo.Value.Type
DeviceInfo.ValueTypeName
+ DeviceInfo.Value.Type
DeviceInfo.ValueTypeName
+ Device3
+ DeviceInfo.Value.Type
DeviceInfo.ValueTypeName
编辑
对不起,不清楚的问题。我让它为根工作。所以我看到了 deviceName,我可以展开它。但我无法显示 DeviceInfos。 propertychanged 在别处处理。我只是为了缩短而省略了它。
这部分正在工作:
<TreeView ItemsSource="{Binding devices}" Margin="2">
<TreeView.ItemTemplate>
<HierarchicalDataTemplate ItemsSource="{Binding Device}">
<TreeViewItem Header="{Binding name}">
</TreeViewItem>
</HierarchicalDataTemplate>
</TreeView.ItemTemplate>
</TreeView>
【问题讨论】: