在wpf中访问自引用树视图中的子项

时间:2014-05-11 18:59:55

标签: c# wpf telerik treeview

我已经使用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

1 个答案:

答案 0 :(得分:0)

您可以使用Items上的RadTreeView媒体资源获取RadTreeViewItem

var myEntity = selfReferenceTree.Items.Cast<RadTreeViewItem>.FirstOrDefault(rtvi => rvti == MyEntity);