2013-03-15 4 views
1

Я использую ComboboxColumn в DataGrid, который отлично работает.WPF DataGridComboBoxColumn style

Однако есть проблема стиля:
Когда курсор находится не на колонки, ComboboxColumn выглядит textboxColumn. Как только я нажму на него, появится крошечная стрелка в правом углу, поэтому она выглядит как combobox.

Я хочу, чтобы он отображался как combobox, даже если он не щелкнут или не сфокусирован. Я чувствую, что это ElementStyle, но не уверен, что сменить точно. Кто-нибудь знает, как это сделать?

xmlns:dg="http://schemas.microsoft.com/wpf/2008/toolkit" 

        <dg:DataGridComboBoxColumn Width="200" x:Name="column" Header="Column" 
    SelectedValueBinding="{Binding Path=RelParams.ColumnName, UpdateSourceTrigger=PropertyChanged, 
    diagnostics:PresentationTraceSources.TraceLevel= High}" 
    DisplayMemberPath="cName" 
    SelectedValuePath="cName"> 

    <dg:DataGridComboBoxColumn.ElementStyle> 
     <Style TargetType="ComboBox"> 
      <Setter Property="ItemsSource" Value="{Binding RelInfo.Columns}" /> 
     </Style> 
    </dg:DataGridComboBoxColumn.ElementStyle> 
    <dg:DataGridComboBoxColumn.EditingElementStyle> 
     <Style TargetType="ComboBox"> 
      <Setter Property="ItemsSource" Value="{Binding RelInfo.Columns}" /> 
     </Style> 
    </dg:DataGridComboBoxColumn.EditingElementStyle> 

</dg:DataGridComboBoxColumn> 

ответ

0

Вы можете использовать DataGridTemplateColumn (msdn).

Пример:

<dg:DataGridTemplateColumn Header="MyColumn"> 
    <dg:DataGridTemplateColumn.CellTemplate> 
     <DataTemplate> 
      <ComboBox ... /> 
     </DataTemplate> 
    </dg:DataGridTemplateColumn.CellTemplate> 
</dg:DataGridTemplateColumn> 
+0

Отлично. Благодарю. Оно работает! – toosensitive

+0

Другой вопрос. У datagridrow есть чередующийся фон. <Свойство триггера = «AlternationIndex» Значение = «1»><Свойство сеттера = «Фон» Значение = «Бежевый» />. Я хочу, чтобы combobox в datagridrow использовал тот же фон, что и текстовое поле в datagridrow, также, когда выбран datagridrow, combobox должен быть выделен тем же цветом, что и остальная часть строки. Как это сделать? Спасибо – toosensitive

+0

@toosensitive, если это еще один вопрос, вы должны создать новый вопрос. Комментарий не лучший способ сделать это :) – kmatyaszek

Смежные вопросы