Treeview HierarchicalDataTemplate 사용 관련

안녕하세요

TreeView에서 ItemTemplateSelector로 두 개(A,B)의 템플릿을 조건에 따라 보여주려고 합니다.

그리고 그 두 개의 템플릿(A,B) 안에서도 조건에 따라 A,B를 보여주려고 합니다.(재귀적으로)

현재

<HierarchicalDataTemplate x:Key="root" >
    <Grid x:Name="RootItem" >
        <Grid.RowDefinitions>
            <RowDefinition Height="Auto" />
            <RowDefinition Height="*" />
        </Grid.RowDefinitions>
        <cuiViews:ExpanderToggleButton x:Name="ExpandedBtn" Grid.Row="0" />

        <ItemsControl Grid.Row="1" ItemsSource="{Binding Children}">
            <ItemsControl.ItemTemplate>
                <DataTemplate>
                    <TextBlock Text="{Binding Content}" />
                </DataTemplate>
            </ItemsControl.ItemTemplate>
        </ItemsControl>
    </Grid>
</HierarchicalDataTemplate>

<HierarchicalDataTemplate x:key="item">
 ///내용 생략
</<HierarchicalDataTemplate>

<local:ItemSelector
    x:Key="selector"
    ItemTemplate="{StaticResource item}"
    RootTemplate="{StaticResource root}" />

<Style x:Key="SettingTreeViewItem" TargetType="{x:Type TreeViewItem}">
    <Setter Property="Background" Value="White" />
    <Setter Property="ItemsSource" Value="{Binding Children}" />
   ////Template 재정의 생략
</Style>

이렇게 정의를 했습니다.

HierarchicalDataTemplate 안에서
컨트롤을 다시 Selector로 조건에 따라 나뉘게 하고 싶은데
xaml 정의 순서가 selector가 뒤에 오니 HierarchicalDataTemplate 안에 selector를 넣질 못합니다.

그렇다고 HierarchicalDataTemplate 에 ItemsSource를 바인딩 해주고 안에 itemsControl을 지우면 wpf의 기본 TreeviewItem의 UI가 남아 있어서 안됩니다.

다른 방법이 있을까요?