I dont know why this does not work? The whole Listbox is a bit complicated but my Question is acctually simple:
Here is my ListBox xaml Code:
<ListBox SelectionMode="Single" ItemsSource="{Binding Path=SoldItems}" ScrollViewer.HorizontalScrollBarVisibility="Disabled" SelectedItem="{Binding Path=SelectedItem}">
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel Orientation="Horizontal" IsItemsHost="True"></WrapPanel>
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Width="80" Height="80" IsItemsHost="False" Background="{Binding Path=Quality.Brush}">
<Label HorizontalContentAlignment="Left" Style="{StaticResource Item}" Content="{Binding Path=Count}"></Label>
<Label Style="{StaticResource Item}" Content="{Binding Path=Name}"></Label>
<Label Style="{StaticResource Item}" Content="{Binding Path=Certification.Name}"></Label>
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
The important part is the StackPanel after: It's Background Brush is set to the Items : Quality.Brush
Item Class:
public class Item
{
/// <summary>
/// Qualität des Item
/// </summary>
private Quality quality;
/// <summary>
/// Accsessor der Qualität
/// </summary>
public Quality Quality
{
get { return quality; }
set { quality = value; }
}
}
There is more in the Item Class such as Name, Count... (Which is not important bc the binding with these works just fine.
Here is the Quality class:
public class Quality
{
#region Property
/// <summary>
/// Name der Qualität
/// </summary>
public string Name { get; set; }
/// <summary>
/// Farbe
/// </summary>
public SolidColorBrush Brush { get; set; }
#endregion
#region Ctor
/// <summary>
/// Ctor
/// </summary>
public Quality()
{
}
/// <summary>
/// Ctor
/// </summary>
/// <param name="name">Name</param>
public Quality(string name, SolidColorBrush brush)
{
Brush = brush;
Name = name;
}
#endregion
}
Everything works fine if i do it that way. Result: Works Fine
What doesnt work is if I change Background=... to this:
<StackPanel.Background>
<LinearGradientBrush EndPoint="0,1" StartPoint="0,0">
<GradientStop Color="{Binding Path=Quality.Brush}" Offset="1"/>
<GradientStop Color="Black" Offset="0"/>
</LinearGradientBrush>
</StackPanel.Background>
Can someone tell me why this doesnt work?
Output of the 2nd code: