Frage

Ich habe eine ListBox, dass während der Entwicklung hatte ich die Elemente in der ListBox hartkodierte und gestylt. Dies ist, wie die Elemente wurden gestylt.

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

Aber wenn ich die ItemsSource Eigenschaft auf ein Datenobjekt gesetzt, hieß es meine XAML ungültig war. Vermutlich, weil es ein Element durch XAML wurde hinzugefügt.

Wie kann ich die Style für jedes Element zu erstellen, wie in der obigen XAML erwähnt, wenn Sie es an eine Datenquelle gebunden haben?

Danke.

War es hilfreich?

Lösung

Sie können dies erreichen, indem Stile mit:

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

Hope, das hilft!

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top