我已经使用wpf中的树视图构建了自引用层次结构。
<telerik:RadTreeView Name="selfReferenceTree" Grid.Column="1" IsTriStateMode="True"
ItemsSource="{Binding Converter={StaticResource HierarchyConverter}}"
ItemTemplate="{StaticResource SelfRefTemplate}">
</telerik:RadTreeView>
<local:TreeViewHiearchyConverter x:Key="HierarchyConverter" />
<HierarchicalDataTemplate x:Key="SelfRefTemplate" ItemsSource="{Binding Converter={StaticResource HierarchyConverter}}">
<StackPanel Orientation="Horizontal" Name="stack">
<CheckBox Name="check" Content="{Binding Code}" Click="checkBox_click"></CheckBox>
<TextBlock Text="{Binding Name}" />
</StackPanel>
</HierarchicalDataTemplate>
对于转换器,他采取根项并返回他的孩子。
在我的c#代码中,我想选择一个孩子RadTreeViewItem
。我用了
RadTreeViewItem item = selfReferenceTree.ItemContainerGenerator.ContainerFromItem(MyEntity) as RadTreeViewItem;
但它返回一个空值。它只选择根项。我想将孩子投射到RadTreeViewItem
答案 0 :(得分:0)
您可以使用Items
上的RadTreeView
媒体资源获取RadTreeViewItem
:
var myEntity = selfReferenceTree.Items.Cast<RadTreeViewItem>.FirstOrDefault(rtvi => rvti == MyEntity);