拉伸复选框父组合框的整个宽度

时间:2018-03-22 10:06:48

标签: wpf xaml mvvm

我遇到下面的组合框及其来源项目有问题:

当我展开组合框时,复选框不会拉伸组合框的整个宽度。这意味着如果我在扩展组合框中的复选框外单击,组合框的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>

1 个答案:

答案 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>