У меня есть следующие 2 класса:
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 - я могу легко создать древовидную структуру, если я просто укажу DeviceGroup в моем HierachicalDataTemplate, следующим образом:
<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 в коде позади.
Спасибо.