WPF DataGrid Combobox - PullRequest
       1

WPF DataGrid Combobox

2 голосов
/ 21 апреля 2010

Я хочу отобразить раскрывающийся список в сетке данных с различными значениями, из которых пользователь может выбрать. Почему-то я не могу отобразить ComboBox, вместо этого он просто отображает значение, как если бы это был обычный TextColumn. Ниже мой код,

<StackPanel Grid.Row="0">
            <toolkit:DataGrid Name="definitionGrid" Margin="0,10,0,0" AutoGenerateColumns="False" 
                                              CanUserAddRows="False" CanUserDeleteRows="False" IsReadOnly="True"
                                              RowHeight="25" FontWeight="Normal" ItemsSource="{Binding Profile}"
                                              SelectionMode="Single" ScrollViewer.HorizontalScrollBarVisibility="Auto" Width="450"
                              ScrollViewer.VerticalScrollBarVisibility="Auto" Height="200">
                <toolkit:DataGrid.Columns>
                    <toolkit:DataGridTextColumn Header="Name" Width="80" Binding="{Binding Name}" CellStyle="{StaticResource cellCenterAlign}"/>
                    <toolkit:DataGridComboBoxColumn Header="Gender" Width="220" SelectedItemBinding="{Binding Gender}" ItemsSource="{Binding Source={StaticResource GenderValues}}" CellStyle="{StaticResource cellCenterAlign}"/>
                    <toolkit:DataGridCheckBoxColumn Header="Email" Width="60" Binding="{Binding ReceivesEmail}" CellStyle="{StaticResource cellCenterAlign}"/>
                    <toolkit:DataGridTextColumn Header="Others" Width="80" CellStyle="{StaticResource cellCenterAlign}"/>
                </toolkit:DataGrid.Columns>
            </toolkit:DataGrid>   
       </StackPanel>

1 Ответ

3 голосов
/ 02 июня 2010

DataGridComboBoxColumn отображает ComboBox, только если он находится в режиме редактирования; иначе он отображается как обычный DataGridTextColumn. Если вы хотите отобразить ComboBox, вы можете определить DataGridTemplateColumn:

<DataGridTemplateColumn Header="Gender">
                    <DataGridTemplateColumn.CellTemplate>
                        <DataTemplate>
                            <ComboBox Width="220" SelectedItem="{Binding Gender}" ItemsSource="{Binding Source={StaticResource GenderValues}}" />
                        </DataTemplate>
                    </DataGridTemplateColumn.CellTemplate>
                </DataGridTemplateColumn>
...