Wpf 具有listbox递归的listboxitem

Wpf 具有listbox递归的listboxitem,wpf,Wpf,我有一个listboxitemtemplate,其中包含网格和列表框中的控件。 该listbox的listboxitemtemplate在网格中包含相同的控件。 我正在寻找一种将listboxitemtemplate作为datatemplate的方法,这样datatemplate就可以作为两个ListBox中的contenttemplate使用。 但由于第二个listbox位于第一个listbox的listitemtemplate中,所以我陷入了死胡同。下面是代码。 如果有人有任何想法,我可以这

我有一个listboxitemtemplate,其中包含网格和列表框中的控件。 该listbox的listboxitemtemplate在网格中包含相同的控件。 我正在寻找一种将listboxitemtemplate作为datatemplate的方法,这样datatemplate就可以作为两个ListBox中的contenttemplate使用。 但由于第二个listbox位于第一个listbox的listitemtemplate中,所以我陷入了死胡同。下面是代码。 如果有人有任何想法,我可以这样做,我可以想出一个方案,数据模板第一个listbox的listboxitemtemplate减去第二个listbox,并在第二个listbox中使用相同的数据模板

<ListBox x:Name="lbLista" 
      ItemsSource="{Binding ListBoxCollection}"
        >
      <ListBox.ItemTemplate>
        <DataTemplate>
         <Grid>
            <Grid.ColumnDefinitions>
                <ColumnDefinition/>
                <ColumnDefinition/>
                <ColumnDefinition/>
                <ColumnDefinition/>
            </Grid.ColumnDefinitions>
            <Grid.RowDefinitions>
                <RowDefinition Height="Auto" />
                <RowDefinition Height="Auto" />
            </Grid.RowDefinitions>
            <dxe:TextEdit  Grid.Column="0"
                 Text="{Binding Section}"
                 TextWrapping="NoWrap" />

            <dxe:ToggleSwitch 
                 Grid.Column="1"
                  />

            <TextBlock TextTrimming="CharacterEllipsis"
                 Grid.Column="2"
                 Text ="{Binding SectionText}" />


            <dxe:TextEdit  Grid.Column="3"
                   Text ="{Binding SectionStatus}" />

            <dx:DXExpander
                   Grid.Row="1" 
                   Grid.Column="0">
                   <DockPanel  HorizontalAlignment="Stretch" Background="Purple">
                    <dxre:RichEditControl DockPanel.Dock="Top" >
                        <dxre:RichEditControl.HorizontalRulerOptions>
                            <dxre:DXRichEditHorizontalRulerOptions Visibility="Hidden"/>
                        </dxre:RichEditControl.HorizontalRulerOptions>
                        <dxre:RichEditControl.VerticalRulerOptions>
                            <dxre:DXRichEditVerticalRulerOptions Visibility="Hidden"/>
                        </dxre:RichEditControl.VerticalRulerOptions>
                    </dxre:RichEditControl>
                    
                     <ListBox x:Name="lbListb" 
                         ItemsSource="{Binding ListBoxCollectionb}" >
                        <ListBox.ItemTemplate>
                <DataTemplate>
                             <Grid>
                               <Grid.ColumnDefinitions>
                                 <ColumnDefinition/>
                                  <ColumnDefinition/>
                                 <ColumnDefinition/>
                                 <ColumnDefinition/>
                              </Grid.ColumnDefinitions>
                              <Grid.RowDefinitions>
                                <RowDefinition Height="Auto" />
                                <RowDefinition Height="Auto" />
                             </Grid.RowDefinitions>
                              <dxe:TextEdit  Grid.Column="0"
                                   Text="{Binding Section}"
                                   TextWrapping="NoWrap" />

                              <dxe:ToggleSwitch 
                                Grid.Column="1" />

                              <TextBlock TextTrimming="CharacterEllipsis"
                                    Grid.Column="2"
                                Text ="{Binding SectionText}" />


                             <dxe:TextEdit  Grid.Column="3"
                                Text ="{Binding SectionStatus}" />


                        <dx:DXExpander
                           Grid.Row="1" 
                               Grid.Column="0">
         

                             <DockPanel  HorizontalAlignment="Stretch" >
                              <dxre:RichEditControl DockPanel.Dock="Top" >
                                <dxre:RichEditControl.HorizontalRulerOptions>
                                   <dxre:DXRichEditHorizontalRulerOptions Visibility="Hidden"/>
                                </dxre:RichEditControl.HorizontalRulerOptions>
                               <dxre:RichEditControl.VerticalRulerOptions>
                                  <dxre:DXRichEditVerticalRulerOptions Visibility="Hidden"/>
                               </dxre:RichEditControl.VerticalRulerOptions>
                              </dxre:RichEditControl>                       
                        </DockPanel>
                           </dx:DXExpander>
              </Grid>
                        </DataTemplate>
                      </ListBox.ItemTemplate>
                    </ListBox>
                 </DockPanel>
               </dx:DXExpander>
           </DataTemplate>
 </ListBox.ItemTemplate>
    </ListBox>

这是否回答了您的问题?还可以看看