2010-04-21 4 views
2

사용자가 선택할 수있는 다른 값으로 데이터 격자에 드롭 다운을 표시하려고합니다. 어떻게 든 ComboBox를 표시 할 수 없으며 대신 일반 TextColumn 인 것처럼 값을 표시합니다. 다음은 내 코드입니다.WPF DataGrid Combobox

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

답변

3

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>