在DataGridComboboxColumn中设置背景颜色

时间:2014-02-08 08:42:00

标签: wpf datagrid datagridcomboboxcolumn

我想在DataGridComboxColumn中设置backgroundcolor。 我尝试使用

使用xaml
<DataGridComboBoxColumn Header="Auswahl1" TextBinding="{Binding Auswahl1S, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"  >
    <DataGridComboBoxColumn.ElementStyle>
        <Style TargetType="ComboBox">
            <Setter Property="ItemsSource" Value="{Binding Path=AuswahlL, ElementName=testdialog}" />
            <Setter Property="Background" Value="{Binding Path=Auswahl1Background}" />
        </Style>
    </DataGridComboBoxColumn.ElementStyle>
   <DataGridComboBoxColumn.EditingElementStyle>
        <Style TargetType="ComboBox">
            <Setter Property="ItemsSource" Value="{Binding Path=AuswahlL, ElementName=testdialog}" />
        </Style>
    </DataGridComboBoxColumn.EditingElementStyle>
</DataGridComboBoxColumn>

我也尝试过代码:

DataGridComboBoxColumn col4 = new DataGridComboBoxColumn();
col4.Header = "Auswahl4";
col4.ItemsSource = AuswahlL;
col4.TextBinding = new Binding("Auswahl4S");
Binding b = new Binding("Auswahl1Background");
Style style = new System.Windows.Style(typeof(ComboBox));
style.Setters.Add(new Setter(ComboBox.BackgroundProperty, b));
col4.ElementStyle = style;

没有工作,我不知道这里有什么问题。

由于 沃尔特

1 个答案:

答案 0 :(得分:0)

使用DataGridTemplateColumn代替DataGridComboBoxColumn。这样你就可以直接设置控件的东西......

<DataGridTemplateColumn Header="Auswahl1">
     <DataGridTemplateColumn.CellTemplate>
        <DataTemplate>
           <ComboBox x:Name="ComboBoxColumn">
                <ComboBox.Style>
                     <Style TargetType="ComboBox">
                           <Setter Property="ItemsSource" Value="{Binding Path=AuswahlL, ElementName=testdialog}" />
                           <Setter Property="Background" Value="{Binding Path=Auswahl1Background}" />
                     </Style>
                </ComboBox.Style>
           </ComboBox>
        </DataTemplate>
    </DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>

或者您可以为该特定GridCell使用StyleSelector和Set Background。 DataGridTemplateColumn

您可以按照以下link..

中提到的相同内容进行操作