XAML 将 String<List> 或 String[] 绑定到 <Image>

XAML Binding String<List> or String[] to <Image>

这是我的 XAML 的一部分,它可以显示一张图片 "ContentImages":

        <DataTemplate x:Key="Box">
        <Grid Background="#99FFFFFF" Margin="0 0 0 5" Width="380">
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="Auto"/>
                <ColumnDefinition Width="*"/>
            </Grid.ColumnDefinitions>

            <Border Margin="0,9.5,0,0" Grid.Column="0" HorizontalAlignment="Left">
                <Image VerticalAlignment="Top" Source="{Binding ImagePath}" Stretch="UniformToFill" AutomationProperties.Name="{Binding Title}" Height="79" Width="79"/>
            </Border>
            <StackPanel  Grid.Column="1" Margin="14.5,0,0,0" Height="Auto">
                <TextBlock Text="{Binding Title}" Foreground="Black" FontSize="36"/>
                <TextBlock Text="{Binding Content}" TextWrapping="Wrap"  Foreground="Black" FontSize="18" Padding="10 0 10 0"/>
                <TextBlock Text="{Binding DateSend}"></TextBlock>
                <Image Source="{Binding ContentImages}"/>
            </StackPanel>
        </Grid>
    </DataTemplate>

问题是,绑定多张图片的最佳方式是什么。 属性 ContentImages 可以为空,也可以包含多个 URLImages 字符串。现在它最多适用于一个 URLImage...我需要什么才能让它更动态?

我是否需要将此 属性 从 String 更改为 List<String> 或者 String[]?
如果是这样,那么 XAML 必须看起来像什么才能处理它?

干杯。

您可以将 属性 ContentImages 更改为 ObservableCollection,并将图像更改为 ItemsControl:

VM:

public ObservableCollection<string> ContentImages { get; set; }

XAML:

<ItemsControl ItemsSource="{Binding ContentImages}">
    <ItemsControl.ItemTemplate>
        <DataTemplate>
            <Image Source="{Binding }"/>
        </DataTemplate>
    </ItemsControl.ItemTemplate>
</ItemsControl>

Here and here 是有关 ItemsControls

的好教程