【问题标题】:XAML Binding String<List> or String[] to <Image>XAML 将 String<List> 或 String[] 绑定到 <Image>
【发布时间】:2016-03-17 08:54:56
【问题描述】:

这是我的 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&lt;String&gt; 或 String[]?
如果是这样,那么 XAML 必须是什么样子才能处理它?

干杯。

【问题讨论】:

  • 这是一种广泛的方式。请阅读有关 ItemsControls 的优秀教程。
  • 您可以使用ItemsControlItemsSource 绑定到ContentImages + 一个ItemTemplateImage
  • 什么是ContentImages?是string吗?
  • 我没有得到这里的问题..你是想要动态改变图像还是同时显示 N 张图像?

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


【解决方案1】:

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

虚拟机

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

XAML

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

Herehere 是关于 ItemsControls 的好教程

【讨论】:

  • 谢谢西尔万。这正是我想要实现的。我已经添加了您的 XAML,并将属性更改为 Observablecollection。我是否以正确的方式填写 Observablecollection?因为到目前为止它不起作用... ObservableCollection contentImages = new ObservableCollection(); foreach(状态中的 MediaEntity 媒体。实体。媒体实体){ contentImagesTest.Add(media.Url); }
猜你喜欢
  • 1970-01-01
  • 2014-01-31
  • 1970-01-01
  • 1970-01-01
  • 2013-12-07
  • 1970-01-01
  • 2018-08-04
  • 1970-01-01
  • 2014-06-03
相关资源
最近更新 更多