My DashBoardSimpleCountObject
has 2 values: MyName
and MyValue
.
I use an ObservableCollection<DashboardSimpleCountObject>
called MyData
.
I want to show a picture, as long as MyValue
is null
.
However, the picture ("loading
") is only shown at the last item of my ObservableCollection
(no matter, how many items are in there). As soon as a MyValue
is set (with anything other than null
), it is automatically updated and shown correctly - that works fine at all items.
<ItemsControl x:Name="_control" ItemsSource="{Binding MyData}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<Grid Margin="25">
<Label FontSize="14" Content="{Binding MyName}" />
<Label Margin="0,25" HorizontalContentAlignment="Right" FontSize="29" FontWeight="ExtraBold" Foreground="{Binding MyColor}">
<Label.Style>
<Style TargetType="{x:Type Label}">
<Setter Property="Content" Value="{Binding MyValue}" />
<Style.Triggers>
<DataTrigger Binding="{Binding MyValue}" Value="{x:Null}">
<Setter Property="Content">
<Setter.Value>
<Image Width="32" Height="32" Source="{DynamicResource loading}" />
</Setter.Value>
</Setter>
</DataTrigger>
</Style.Triggers>
</Style>
</Label.Style>
</Label>
</Grid>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
What am I doing wrong? Thank you very much in advance! :)
It seems, the nature of DynamicResource
causes this issue.
Simply changing DynamicResource
to StaticResource
did the trick.
So, the DataTrigger
worked just fine from the beginning. The image simply did only show up once due to being loaded as a DynamicResource
.