@DmitryMry
Game Developer

Как изменить изображение через биндинг?

В ресурсы поместил несколько изображений и хочу выводить одно из них, указывая нужное через биндинг.
Первое, что пришло в голову — поместить изображения в массив и через биндинг переключать индекс, чтобы по нему бралось изображение из массива.
<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, который использую, не поддерживает массивы, поэтому нужен какой-то другой вариант.
  • Вопрос задан
  • 47 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы