【问题标题】:Stretch checkbox the whole width of a parent combobox拉伸复选框父组合框的整个宽度
【发布时间】:2018-03-22 10:06:47
【问题描述】:

我对下面的组合框及其源项有疑问:

当我展开组合框时,复选框不会拉伸组合框的整个宽度。这意味着如果我在展开的组合框中的复选框之外单击,组合框的文本属性将被评估为所选项目的 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>

【问题讨论】:

    标签: wpf xaml mvvm


    【解决方案1】:

    ComboBoxItem容器的HorizontalContentAlignment属性设置为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>
    

    【讨论】:

      猜你喜欢
      • 2021-06-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-08
      • 2013-03-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多