XAML绑定字符串<list>或String []到<img/>

时间:2016-03-17 08:54:56

标签: c# wpf xaml windows-phone-8.1 linq-to-twitter

这是我的XAML的一部分,它可以显示一张图片&#34; ContentImages&#34;:

        <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必须要处理什么呢?

干杯。

1 个答案:

答案 0 :(得分:2)

您可以更改属性ContentImages的ObservableCollection并将Image更改为ItemsControl:

<强> VM

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

<强> XAML

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

Herehere是关于ItemsControls的好教程