ショッピング カートの内容を で試していますItemsControl(ListBox)
。そのために、次のものを作成しましたDataTemplate
。
<DataTemplate x:Key="Templates.ShoppingCartProduct"
DataType="{x:Type viewModel:ProductViewModel}">
<DockPanel HorizontalAlignment="Stretch">
<TextBlock DockPanel.Dock="Left"
Text="{Binding Path=Name}"
FontSize="10"
Foreground="Black" />
<TextBlock DockPanel.Dock="Right"
Text="{Binding Path=Price, StringFormat=\{0:C\}}"
FontSize="10"
Foreground="Black" />
</DockPanel>
</DataTemplate>
しかし、商品がショッピングカートに表示されると、名前と価格がTextBlocks
隣り合って表示され、右側に非常に大きな空白スペースができます。
DockPanel
によって利用できるスペースをすべて埋めるために を強制的に伸ばすための最良の方法は何でしょうかListItem
?
ベストアンサー1
Width
のをDockPanel
の にバインドします:ActualWidth
ListBoxItem
<DockPanel Width="{Binding ActualWidth, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type ListBoxItem}}}">
...
別のオプション:が水平方向に引き伸ばされるItemContainerStyle
ように を再定義することもできます。ListBoxItem
<ListBox.ItemContainerStyle>
<Style TargetType="ListBoxItem">
<Setter Property="HorizontalContentAlignment" Value="Stretch"/>
</Style>
</ListBox.ItemContainerStyle>