В ресурсы поместил несколько изображений и хочу выводить одно из них, указывая нужное через биндинг.
Первое, что пришло в голову — поместить изображения в массив и через биндинг переключать индекс, чтобы по нему бралось изображение из массива.
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<x:Array x:Key="NotificationIcons" Type="Path">
<Path Name="ErrorIcon" Fill="#FFFF4040">
...
</Path>
<Path Name="InfoIcon" Fill="#ffffff">
...
</Path>
<Path Name="WarningIcon" Fill="#FFFFFF40">
...
</Path>
</x:Array>
</ResourceDictionary>
Для проверки решил взять изображение с индексом 0:
<StackPanel Orientation="Horizontal">
<Canvas Name="Icon" Width="36" Height="36" HorizontalAlignment="Center" VerticalAlignment="Center" Margin="10,0,0,0">
<ContentControl Content="{Binding Source={StaticResource NotificationIcons[0]}}"/>
</Canvas>
<TextBlock x:Name="Message" VerticalAlignment="Center" Foreground="White" Padding="10,10,10,10" Text="{Binding Message}"/>
</StackPanel>
Но такая запись выдаёт ошибку `XDG-0001`.
Каким образом правильно менять изображения? И вообще, возможно ли это через xaml, или нужно через код это как-то делать? В этой теме новичок.
upd: Подсказали, что синтаксис некорректный, должно быть
{Binding Path=[0], Source={StaticResource NotificationIcons}}
но UI, который использую, не поддерживает массивы, поэтому нужен какой-то другой вариант.