Wpf 具有listbox递归的listboxitem
我有一个listboxitemtemplate,其中包含网格和列表框中的控件。 该listbox的listboxitemtemplate在网格中包含相同的控件。 我正在寻找一种将listboxitemtemplate作为datatemplate的方法,这样datatemplate就可以作为两个ListBox中的contenttemplate使用。 但由于第二个listbox位于第一个listbox的listitemtemplate中,所以我陷入了死胡同。下面是代码。 如果有人有任何想法,我可以这样做,我可以想出一个方案,数据模板第一个listbox的listboxitemtemplate减去第二个listbox,并在第二个listbox中使用相同的数据模板Wpf 具有listbox递归的listboxitem,wpf,Wpf,我有一个listboxitemtemplate,其中包含网格和列表框中的控件。 该listbox的listboxitemtemplate在网格中包含相同的控件。 我正在寻找一种将listboxitemtemplate作为datatemplate的方法,这样datatemplate就可以作为两个ListBox中的contenttemplate使用。 但由于第二个listbox位于第一个listbox的listitemtemplate中,所以我陷入了死胡同。下面是代码。 如果有人有任何想法,我可以这
<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>
这是否回答了您的问题?还可以看看