Я получил список устройств. Они имеют только имена и список DeviceInfos. Эти DeviceInfos имеют ключ и значения. Теперь я хочу построить TreeView, который показывает каждое устройство и в виде TreeView элементы все значения. Абд я не знаю, как связать это в 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. Измененная собственность обрабатывается в другом месте. я просто оставил это для сокращения.
Эта часть работает:
<TreeView ItemsSource="{Binding devices}" Margin="2">
<TreeView.ItemTemplate>
<HierarchicalDataTemplate ItemsSource="{Binding Device}">
<TreeViewItem Header="{Binding name}">
</TreeViewItem>
</HierarchicalDataTemplate>
</TreeView.ItemTemplate>
</TreeView>