我在控件中有以下标记ServiceTree
,它应该在 aTreeView
中显示 a 服务ServiceGroup
:
<Grid>
<TreeView ItemsSource="{Binding Services}" DataContext="{Binding}">
<TreeView.ItemTemplate>
<HierarchicalDataTemplate ItemsSource="{Binding Children}" DataType="{x:Type businessService:BusinessService}">
<TreeViewItem Header="{Binding Name}"/>
</HierarchicalDataTemplate>
</TreeView.ItemTemplate>
</TreeView>
</Grid>
在顶级绑定中,Services
是属于 a 的服务的集合ServiceGroup
。
在主窗口中,我使用以下数据绑定OdcExpander
从Odyssey项目中创建一个:
<ItemsControl.ItemTemplate>
<DataTemplate DataType="groups:ServiceGroup">
<odc:OdcExpander Header="{Binding UIMetadata.MenuText}" HeaderBackground="{Binding UIMetadata.MenuTabBackColor}">
<XTime900Shell:ServiceTree />
</odc:OdcExpander>
</DataTemplate>
</ItemsControl.ItemTemplate>
这行得通。我得到一个正确绑定到每个扩展器ServiceGroup
,但是在具有服务的组上,即“员工”组,树视图应该有一个空间,高度与它应该显示的服务数量成正比,所以它绑定到集合属性,并为Services
每个服务创建一个项目,但不显示服务“名称”属性的任何内容,我知道该属性已正确填充。