我有以下两个课程:
public class DeviceGroup
{
public String Name { get; set; }
public ObservableCollection<DeviceGroup> DeviceGroups { get; set; }
public ObservableCollection<Device> Devices { get; set; }
public DeviceGroup()
{
Name = String.Empty;
DeviceGroups = new ObservableCollection<DeviceGroup>();
Devices = new ObservableCollection<Device>();
}
}
public class Device
{
public String Name { get; set; }
}
我的主类有一个 ObservableCollection。
在我的 Xaml - 如果我只是在我的 HierachicalDataTemplate 中指定 DeviceGroup,我可以轻松地创建一个树视图,如下所示:
<Window.Resources>
<ResourceDictionary>
<DataTemplate DataType="{x:Type local:Device}">
<TextBlock Text="{Binding Name}"/>
</DataTemplate>
<HierarchicalDataTemplate DataType="{x:Type local:DeviceGroup}" ItemsSource="{Binding DeviceGroups}">
<StackPanel>
<TextBlock Text="{Binding Name}"/>
</StackPanel>
</HierarchicalDataTemplate>
</ResourceDictionary>
</Window.Resources>
<Grid>
<TreeView ItemsSource="{Binding DeviceGroups}"/>
</Grid>
问题是:如何选择设备集合以及设备组?我希望设备看起来像 Windows 资源管理器(目录和文件)。这个问题有 Xaml 解决方案吗?或者我是否必须在代码隐藏中创建 TreeViewItems。谢谢。