HierarchicalDataTemplate不起作用
我试图使用HierarchicalDataTemplate递归创建包含项目的扩展器,但是当我使用HierarchicalDataTemplate时,我只获得显示的第一级项目。
如果您需要任何信息,请告诉我。
如果我是手写的话,那就是xaml的样子:
etc......
这是我到目前为止所拥有的。
XAML:
数据类:
class TopViewModel { ObservableCollection _sections = new ObservableCollection(); public ObservableCollection Sections { get { return _sections; } set { _sections = value; } } } public class SectionViewModel { ObservableCollection _materials = new ObservableCollection(); ObservableCollection _subSections = new ObservableCollection(); Section _section; public Section Section { get { return _section; } set { _section = value; } } public string MaterialName { get { return Section.SectionName; } set { Section.SectionName = value; } } public ObservableCollection Materials { get { return _materials; } set { _materials = value; } } public ObservableCollection SubSections { get { return _subSections; } set { _subSections = value; } } } public class SubSectionViewModel { ObservableCollection _materials = new ObservableCollection(); ObservableCollection _subSections = new ObservableCollection(); SubSection _subSection; public ObservableCollection Materials { get { return _materials; } set { _materials = value; } } public ObservableCollection SubSections { get { return _subSections; } set { _subSections = value; } } public SubSection SubSection { get { return _subSection; } set { _subSection = value; } } }
您缺少HierarchicalDataTemplate
的关键位 – 如何呈现子元素:
编辑:不要窃取@ BDE的风头,但他/她对DataType
的使用大多是正确的 – 但这就是你“简化”上述XAML的方式:
HierarchicalDataTemplate
的替代方法是将ItemsControl
添加到数据模板中的Expander
,并将ItemsSource
绑定到那里。
此外,由于您在数据模板定义中指定了DataType
,因此您不必直接为顶级ItemsControl
键名设置ItemTemplate
。
如果你像这样修改XAML它可能会做你想要的:
Section.SectionName应该是MaterialName?
看线:
和
我认为,如果第一行绑定是SubSections,那么第二行代替
{Binding Path=SubSections}
你可能会写
{Binding}
我没有在你的课程中找到SubSectionName。
请添加更多课程