如何将字符串添加到图像源的绑定值?

时间:2016-08-29 20:12:57

标签: image xaml xamarin binding imagesource

大家好我正在开发一个xamarin应用程序,我遇到了问题。 我在xaml中有下一个代码:

<ListView x:Name="listName">
  <ListView.ItemTemplate>
    <DataTemplate>
      <ViewCell>
        <StackLayout Orientation="Vertical">
          <Image Source="{Binding imageName}"></Image>
          <Label Text="{Binding name}" TextColor="Black"></Label>
        </StackLayout>
      </ViewCell>
    </DataTemplate>
  </ListView.ItemTemplate>
</ListView>

我需要更改添加字符串的图像源属性。例如:

<Image Source="{Binding imageName} + mystring.png"></Image>
<Image Source="{Binding imageName + mystring.png}"></Image>

我可以在xaml中执行此操作吗? 任何的想法?有可能吗?

2 个答案:

答案 0 :(得分:1)

您可以使用转换器来执行此操作。

public class ImagePostfixValueConverter 
    : IValueConverter
{
    public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
    {
        var path = value as string;
        var postfix = parameter as string;

        if (string.IsNullOrEmpty(postfix) || string.IsNullOrEmpty(path))
            return value;

        return path + postfix;
    }

    public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
    {
        throw new NotImplementedException();
    }
}

然后在您的页面上添加:

<ContentPage.Resources>
    <ResourceDictionary>
        <local:ImagePostfixValueConverter x:Key="PostfixConverter"/>
    </ResourceDictionary>
</ContentPage.Resources>

然后在你的装订中:

<Image Source="{Binding imageName, Converter={StaticResouce PostfixConverter}, ConverterParameter=mystring.png}"></Image>

答案 1 :(得分:0)

你可以用更简单的方式做到这一点:

<Image Source="{Binding imageName, StringFormat='{0}mystring.png'}"></Image>