【发布时间】:2010-12-22 09:47:55
【问题描述】:
我正在尝试让 ItemsPanelTemplate 为 ListBox 工作。 ListBox 在 DataTemplate 中使用,并且我的隐式 ListBox 样式都不会覆盖默认的视觉样式。出于某种原因,我为控件指定的ItemsPanelTemplate(WrapPanel)被忽略,而使用StackPanel。
这是整个模板,我只能假设我缺少一些导致此问题的东西。
<DataTemplate x:Key="GroupLargeIconsTemplate" DataType="{x:Type Core:IGroup}">
<ListBox ItemsSource="{Binding Children}" OverridesDefaultStyle="True">
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel HorizontalAlignment="Left" VerticalAlignment="Top" IsItemsHost="True" ScrollViewer.HorizontalScrollBarVisibility="Disabled" ScrollViewer.VerticalScrollBarVisibility="Auto"
Width="{Binding (FrameworkElement.ActualWidth), RelativeSource={RelativeSource AncestorType=ScrollContentPresenter}}" />
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
<ListBox.ItemTemplate>
<DataTemplate>
<DataTemplate.Resources>
<conv:IconConverter x:Key="IconConverter"/>
</DataTemplate.Resources>
<StackPanel Margin="2" Width="100" Height="140">
<Image Source="{Binding Icon,Converter={StaticResource IconConverter},ConverterParameter=96}"/>
<TextBlock Text="{Binding Name}" TextWrapping="Wrap" TextTrimming="CharacterEllipsis" />
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</DataTemplate>
【问题讨论】:
-
你好,虽然它的回复很长一段时间。你能告诉你是如何解决这个问题的吗?您说“控件模板覆盖了 ItemsPane”;有没有办法阻止这种情况发生?
标签: wpf data-binding listbox itemscontrol itemspanel