我有一个ListBox,其ItemsControl绑定到我的视图模型中的一个集合。我试图在DataTemplate中的网格列上使用星形大小,并将该列中的元素(进度条)设置为拉伸。这通常会占用网格中所有可用的水平空间,但是嵌套在ItemsControl中似乎不是这种情况。我已经完成了一些阅读和阅读似乎一起使用这些控件存在已知问题。有解决方案吗?
<ListBox>
<ItemsControl ItemsSource="{Binding WebMappingSourcesCollection}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<Grid
ShowGridLines="True"
Grid.IsSharedSizeScope="true"
>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<CheckBox
Grid.Column="0"
HorizontalAlignment="Center" />
<TextBlock
Grid.Column="1"
Text="{Binding Name}"/>
<ProgressBar Grid.Column="2"
Minimum="0"
Maximum="100"
Value="30"
HorizontalContentAlignment="Stretch"
HorizontalAlignment="Stretch"
MaxHeight="15"
/>
<!-- etc. etc. -->
答案 0 :(得分:2)
尝试通过下面的HorizontalContentAlignment
设置您的列表框项目ItemContainerStyle
。
<ListBox>
<ListBox.ItemContainerStyle>
<Style TargetType="ListBoxItem">
<Setter Property="HorizontalContentAlignment" Value="Stretch"/>
</Style>
</ListBox.ItemContainerStyle>
</ListBox>