У меня есть TreeView, который я связываю с наблюдаемой коллекцией, в которой есть одна наблюдаемая коллекция.
У меня есть следующие классы:
базовый класс:
public class BaseObject : BindableBase, IBaseObject
{
public string Name { get; set; }
}
и 2 других класса для каталогов и файлов, которые наследуются от этого BaseObject. Сейчас разница между классом File и Directory заключается в коллекции:
public ObservableCollection<BaseObject> DirectoryItems
{
get => _directoryItems;
set
{
_directoryItems = value;
RaisePropertyChanged();
}
}
В моей модели представления я добавляю файлы и каталоги для заполнения наблюдаемой коллекции, но проблема в том, что TreeView пуст. Ниже приводится xaml:
<UserControl.Resources>
<DataTemplate
x:Key="ProjectExplorerFileTemplate">
<TextBlock Text="{Binding Path=Name}" />
</DataTemplate>
<HierarchicalDataTemplate
x:Key="ProjectExplorerFolderTemplate"
ItemTemplate="{StaticResource ProjectExplorerFileTemplate}"
ItemsSource="{Binding Path=DirectoryItems}">
<TextBlock Text="{Binding Path=Name}" />
</HierarchicalDataTemplate>
</UserControl.Resources>
<Grid Margin="10">
<TreeView
Name="ProjectExplorerTreeView"
ItemTemplate="{StaticResource ProjectExplorerFolderTemplate}"
ItemsSource="{Binding Path=ProjectExplorerNodes}" />
</Grid>
Я не уверен, где я делаю что-то не так. В наблюдаемой коллекции у меня есть все данные, которые мне нужны. Проблема в xaml?
EDIT. ProjectExplorerNodes - это наблюдаемые коллекции, в которые я добавляю файлы и каталоги с пути root в модель представления.
public ObservableCollection<BaseObject> ProjectExplorerNodes
{
get => _projectExplorerNodes;
set
{
_projectExplorerNodes = value;
RaisePropertyChanged();
}
}