Datatrigger с DynamicResource работает только с последним элементом в ItemsControl
Мой DashBoardSimpleCountObject
имеет 2 значения: MyName
а также MyValue
, Я использую ObservableCollection<DashboardSimpleCountObject>
называется MyData
,
Я хочу показать картинку, пока MyValue
является null
, Тем не менее, картина (loading
") отображается только в последнем пункте моего ObservableCollection
(неважно, сколько там вещей). Как только MyValue
установлен (с чем-либо, кроме null
), он автоматически обновляется и отображается правильно - это прекрасно работает для всех элементов.
<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>
Что я делаю неправильно? Заранее большое спасибо!:)
1 ответ
Похоже, природа DynamicResource
вызывает эту проблему. Просто меняется DynamicResource
в StaticResource
сделал трюк.
Итак DataTrigger
работал отлично с самого начала. Изображение просто появилось только один раз из-за загрузки в виде DynamicResource
,