Как «заполнить» GridViewColumn с помощью ComboBox (WPF)? - PullRequest
7 голосов
/ 19 августа 2010

Я ищу способ "полностью заполнить" GridViewColumn с помощью поля со списком.Я могу создать шаблон ячейки с ComboBox, и он работает нормально.Но ширина и высота ComboBox не совпадают с GridViewColumn.Даже если я пытаюсь установить ту же высоту / ширину, GridViewColumn скрывает некоторую часть comboBox.

Должны быть какие-то настройки или стиль, чтобы инструктировать WPF полностью заполнить ComboBox в доступном пространстве GridViewColumn

Это мой 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 ]

10 голосов
/ 19 августа 2010

Включите следующий стиль в ListViews-ресурсы.Затем вы можете установить свойство HorizontalAlignment ComboBox на HorizontalAlignment="Stretch", и оно будет работать так, как вы хотите:

1 голос
/ 19 августа 2010

Вы пробовали это:

<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" />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...