WPF ItemsPanelTemplateが動作しません
-
11-09-2019 - |
質問
私はItemsPanelTemplate
のために働いてListBox
を取得しようとしています。 ListBox
はDataTemplate
に使用されている、と私の暗黙のListBox
スタイルはどれもデフォルトのビジュアルスタイルを上書きしません。何らかの理由で、私はコントロール(ItemsPanelTemplate
)のためspecifiyingてる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>
解決
私の推測では、WrapPanelでwidthプロパティが、それはStackPanelのように振る舞う作っているということです。
他のヒント
奇妙な、コントロールテンプレートは反対のシナリオは私の心に来るむしろ、明示的に指定された値を上書きすることになっていません... コントロールテンプレートがtrueに設定された「IsItemsHost」とのパネルを提供しない限り、それは、あります。そして、ItemsPanelは無視されます。これは、おそらく、あなたのケースである。
所属していません StackOverflow