目前我的树视图看起来像这样。
|Department
|-Program
|--Curriculum
|---Bloc
我想跳过课程部分,让我的树视图看起来像这样。
|Department
|-Program
|--Bloc
这是我目前在xaml中的树视图。我怎么能改变这个?我需要更换模型吗?
<TreeView ItemsSource="{Binding DepartmentList}">
<TreeView.ItemTemplate>
<HierarchicalDataTemplate ItemsSource="{Binding ProgramList}">
<TextBlock Text="{Binding Code}" />
<HierarchicalDataTemplate.ItemTemplate>
<HierarchicalDataTemplate ItemsSource="{Binding CurriculumList}">
<TextBlock Text="{Binding Title}" />
<HierarchicalDataTemplate.ItemTemplate>
<HierarchicalDataTemplate ItemsSource="{Binding BlocList}">
<TextBlock Text="{Binding YearImplemented}"/>
<HierarchicalDataTemplate.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Code}"/>
</DataTemplate>
</HierarchicalDataTemplate.ItemTemplate>
</HierarchicalDataTemplate>
</HierarchicalDataTemplate.ItemTemplate>
</HierarchicalDataTemplate>
</HierarchicalDataTemplate.ItemTemplate>
</HierarchicalDataTemplate>
</TreeView.ItemTemplate>
</TreeView>
答案 0 :(得分:2)
您无需更改模型类。您可以使用转换器更改ItemsSource
的{{1}}。
转换器代码:
HierarchicalDataTemplate
public class CurriculumItemsSourceConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
ObservableCollection<Curriculum> curriculumList = value as ObservableCollection<Curriculum>;
return curriculumList.SelectMany(c => c.BlocList);
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
throw new NotImplementedException();
}
}
代码:
TreeView
其中<TreeView ItemsSource="{Binding DepartmentList}">
<TreeView.ItemTemplate>
<HierarchicalDataTemplate ItemsSource="{Binding ProgramList}">
<TextBlock Text="{Binding Code}" />
<HierarchicalDataTemplate.ItemTemplate>
<HierarchicalDataTemplate ItemsSource="{Binding CurriculumList, Converter={StaticResource curriculumItemsSourceConverter}}">
<TextBlock Text="{Binding Title}" />
<HierarchicalDataTemplate.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Code}"/>
</DataTemplate>
</HierarchicalDataTemplate.ItemTemplate>
</HierarchicalDataTemplate>
</HierarchicalDataTemplate.ItemTemplate>
</HierarchicalDataTemplate>
</TreeView.ItemTemplate>
</TreeView>
是转换器:
curriculumItemsSourceConverter