代码之家  ›  专栏  ›  技术社区  ›  Manish Basantani

如何用组合框(WPF)填充GridView列?

  •  7
  • Manish Basantani  · 技术社区  · 14 年前

    我正在寻找一种“完全填满”的方法 GridViewColumn 有一个组合框。我可以用创建单元格模板 ComboBox 而且工作正常。但是它的宽度和高度 组合框 不符合 GRIDVIEW列 . 即使我试图设置相同的高度/宽度 GRIDVIEW列 隐藏组合框的某些部分。

    必须有一些设置或样式来指示WPF填充 组合框 完全在可用空间 GRIDVIEW列

    这是我的XAML。

    <Window x:Class="WPFStarter.ComboInsideListView.ComboBoxInsideListViewUsingObject"
            x:Name="userControl"
            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
            Title="ComboBoxInsideListViewUsingObject" Height="300" Width="400">
        <Grid>
            <ListView x:Name="listView" ItemsSource="{Binding ElementName=userControl, 
                Path=DataContext.Items}" SelectedItem="{Binding ElementName=userControl, Path=DataContext.SelectedItem, Mode=TwoWay}">                   
                <ListView.View>
                    <GridView>
                       <GridViewColumn Header="First Name"  DisplayMemberBinding="{Binding Path=First}"/>
                       <GridViewColumn Header="Gender">
                            <GridViewColumn.CellTemplate>
                                <DataTemplate>
                                    <ComboBox x:Name="cmb_Gender" Width="75" SelectedValue="{Binding Path=Gender}"                    
                      ItemsSource="{Binding ElementName=userControl, Path=DataContext.Genders}" GotFocus="ComboBox_GotFocus"         />
                                </DataTemplate>
                            </GridViewColumn.CellTemplate>
                        </GridViewColumn>
                    </GridView>
    
                </ListView.View>
    
            </ListView>
        </Grid>
    </Window>
    
    2 回复  |  直到 11 年前
        1
  •  10
  •   HCL    14 年前

    在ListView资源中包含以下样式。然后可以将组合框的HorizontalSignment属性设置为 HorizontalAlignment="Stretch" 它将按您的意愿进行:

     <ListView.Resources>
              <Style TargetType="ListViewItem">
                    <Setter Property="HorizontalContentAlignment" Value="Stretch" />
              </Style>
     </ListView.Resources>
    
        2
  •  1
  •   Steve Danner    14 年前

    您是否尝试过:

    <ComboBox x:Name="cmb_Gender" Width="75" SelectedValue="{Binding Path=Gender}"                    
        ItemsSource="{Binding ElementName=userControl, Path=DataContext.Genders}" 
        GotFocus="ComboBox_GotFocus" 
        HorizontalAlignment="Stretch" VerticalAlignment="Stretch" />