У меня есть TreeView, связанный с ObservableCollection
элементов, определяемый как таковые (полный примера Посмотреть модели, представленные для полноты):массива строк в пункте TreeView
using System.Collections.ObjectModel;
namespace ViewModels
{
public class MainViewModel()
{
public ObservableCollection<CustomTask> SavedTasks { get; } = new ObservableCollection<CustomTask>();
public MainViewModel() {}
}
public class CustomTask
{
public string DisplayName { get; private set; }
public string Name { get; private set; }
public string[] Tasks { get; private set; }
public CustomTask(string dispName, string name, string[] tasks)
{
DisplayName = dispName;
Name = name;
Tasks = tasks;
}
}
}
Я пытаюсь отобразить каждый CustomTask
объект в дерево с его Tasks
свойство, являющееся дочерью в древовидной структуре. Я читал некоторые онлайн-уроки и т. Д., И не могу получить строки для отображения. Это XAML я до сих пор:
<TreeView ItemsSource="{Binding SavedTasks}">
<TreeView.ItemTemplate>
<HierarchicalDataTemplate DataType="{x:Type common:CustomTask}" ItemsSource="{Binding SavedTasks}">
<TextBlock Text="{Binding Path=Name}" />
<HierarchicalDataTemplate.ItemTemplate>
<HierarchicalDataTemplate DataType="{x:Type sys:String}" ItemsSource="{Binding Tasks}">
<TextBlock Text="{Binding}" />
</HierarchicalDataTemplate>
</HierarchicalDataTemplate.ItemTemplate>
</HierarchicalDataTemplate>
</TreeView.ItemTemplate>
</TreeView>
Я не уверен, что делать со вторым DataTemplate. Я надеюсь избежать создания другого класса, чтобы держать каждую строку в массиве.