ListBoxItems上的数据绑定WPF ListBox样式

ListBoxItems上的数据绑定WPF ListBox样式,wpf,listbox,styles,databound,Wpf,Listbox,Styles,Databound,我有一个列表框,在开发过程中,我将列表框中的项目硬编码并设置样式。这就是项目的样式 <ComboBoxItem Width="Auto" Height="Auto" Content="ComboBoxItem" > <ComboBoxItem.Foreground> <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0"> <GradientStop

我有一个
列表框
,在开发过程中,我将
列表框
中的项目硬编码并设置样式。这就是项目的样式

<ComboBoxItem Width="Auto" Height="Auto" Content="ComboBoxItem" >
    <ComboBoxItem.Foreground>
        <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
            <GradientStop Color="#FF6F6F6F" Offset="0"/>
            <GradientStop Color="#FFD1D1D1" Offset="1"/>
        </LinearGradientBrush>
    </ComboBoxItem.Foreground>
</ComboBoxItem>

但是当我将
ItemsSource
属性设置为数据对象时,它表示我的xaml无效。大概是因为它通过XAML添加了一个项

在将每个项目绑定到数据源后,如何为其创建上述XAML中提到的
样式


谢谢。

您可以通过使用样式来实现这一点:

<ComboBox ItemsSource="{Binding}">
  <ComboBox.Resources>
    <Style TargetType="{x:Type ComboBoxItem}">
      <Setter Property="Foreground">
        <Setter.Value>
          <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
            <GradientStop Color="#FF6F6F6F" Offset="0"/>
            <GradientStop Color="#FFD1D1D1" Offset="1"/>
          </LinearGradientBrush>
        </Setter.Value>
      </Setter>
    </Style>
  </ComboBox.Resources>
</ComboBox>


希望这有帮助

您可以通过使用样式来实现这一点:

<ComboBox ItemsSource="{Binding}">
  <ComboBox.Resources>
    <Style TargetType="{x:Type ComboBoxItem}">
      <Setter Property="Foreground">
        <Setter.Value>
          <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
            <GradientStop Color="#FF6F6F6F" Offset="0"/>
            <GradientStop Color="#FFD1D1D1" Offset="1"/>
          </LinearGradientBrush>
        </Setter.Value>
      </Setter>
    </Style>
  </ComboBox.Resources>
</ComboBox>


希望这有帮助

这应该行得通。还有别的问题。确切的错误消息会有所帮助。当绑定到项目列表时,这不一定有效。显示的XAML仅会设置当前ComboBoxItem的样式。每个数据绑定项都有自己的ComboBoxItem,因此您需要使用我在下面的回答中所描述的样式。这应该是可行的。还有别的问题。确切的错误消息会有所帮助。当绑定到项目列表时,这不一定有效。显示的XAML仅会设置当前ComboBoxItem的样式。每个数据绑定项都有自己的ComboBoxItem,因此您需要使用我在下面的回答中描述的样式。