我遇到下面的组合框及其来源项目有问题:
当我展开组合框时,复选框不会拉伸组合框的整个宽度。这意味着如果我在扩展组合框中的复选框外单击,组合框的text属性将被计算为所选项的String()属性(即位置模型(Datacontext))。
我认为最简单的方法是将复选框拉伸到整个组合框的宽度。我没有成功这样做。
有没有办法只使用xaml拉伸复选框整个长度的复选框宽度?
非常感谢!
<DataTemplate>
<ComboBox Text ="{Binding LocationNames}" IsEditable="True" IsReadOnly="True" ItemsSource="{Binding Locations}">
<ComboBox.ItemTemplate>
<DataTemplate>
<CheckBox IsChecked="{Binding IsChecked}">
<TextBlock Text="{Binding Name}"/>
</CheckBox>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
</DataTemplate>
答案 0 :(得分:1)
将HorizontalContentAlignment
容器的ComboBoxItem
属性设置为Stretch
:
<ComboBox Text ="{Binding LocationNames}" IsEditable="True" IsReadOnly="True" ItemsSource="{Binding Locations}">
<ComboBox.ItemContainerStyle>
<Style TargetType="ComboBoxItem">
<Setter Property="HorizontalContentAlignment" Value="Stretch" />
</Style>
</ComboBox.ItemContainerStyle>
<ComboBox.ItemTemplate>
<DataTemplate>
<CheckBox IsChecked="{Binding IsChecked}">
<TextBlock Text="{Binding Name}"/>
</CheckBox>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>