如何在Xamarin表单的ListView中绑定本地嵌入式图像?

朱德·汗·莫敏

ListView在XAML中有一个,并List<string>拥有本地嵌入式图像路径。我无法在列表中显示图像。顺便说一句,我可以通过

<Image Source="{local:ImageResource TypingApplication.Images.Icons.Search.png}" />

但是我无法显示中的图像ListView这是我的XAML代码

<ListView x:Name="ListView"
            ItemsSource="{Binding ListItems}"
            IsEnabled="True"
            IsVisible="True"
            RowHeight="40"
            Opacity="0.9">
    <ListView.ItemTemplate>
        <DataTemplate>
            <ViewCell>                            
                <Image Source="{local:ImageResource TypingApplication.Images.Icons.{Binding .}}"/>
            </ViewCell>                        
        </DataTemplate>
    </ListView.ItemTemplate>
</ListView>

我已经ImageResourceExtensionExtensions文件夹和xmlns:local="clr-namespace:TypingApplication.Extensions"XAML中添加了内容,正如我提到的那样,我可以显示“单个图像”,仅存在问题ListView

这是我的C#代码,其中包含List和Construcor

public List<string> ListItems
{
    get
    {
        return new List<string>()
        {
            "Home.png",
            "Favorite.png",
            "Search.png"
        };
    }
}

public HomePage()
{
    InitializeComponent();
    this.BindingContext = this;
}

请注意,我在项目中使用共享图像。我已将所有图像的属性设置为Embedded resourceSolutionExplorer

莫尔斯
  • 将清单更改为 ObservableCollection
  • IValueConverter 实现将绑定转换为所需值
  • image属性应设置为 EmbeddedResource
public class EmbeddedToImageSourceConverter : IValueConverter
{
    public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
    {
        if (value is string fileName && parameter is String assemblyName)
        {
            try
            {
                var imageSource = ImageSource.FromResource(assemblyName + "." + fileName, typeof(EmbeddedToImageSourceConverter).GetTypeInfo().Assembly);
                return imageSource;
            }
            catch (Exception)
            {
                return value;
            }
        }
        else
            return value;
    }

    public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
    {
        return value;
    }
}

XAML

<ContentPage.Resources>
    <local:EmbeddedToImageSourceConverter x:Key="converter"/>
</ContentPage.Resources>

在列表视图中,添加刚创建的绑定wrto转换器资源。

<Image Source="{Binding ., Converter={StaticResource converter}, ConverterParameter='TypingApplication.Images.Icons'}"/>

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Xamarin表单:如何在PCL Project中使用嵌入式资源获取图像

如何在代码背后绑定嵌入式图像

在Camunda嵌入式表单中,如何指定绑定变量的作用域?

如何通过VBA将Powerpoint 2013中的嵌入式图像保存到本地磁盘?

我如何在本地运行嵌入式Shopify应用

如何在嵌入式表单集中过滤下拉列表

如何在C ++中嵌入Chromium嵌入式框架

如何在电子邮件消息中的嵌入式图像中添加“名称”标头

如何在较小的屏幕上响应嵌入式图像

如何允许在嵌入式 SVG 中引用外部图像?

如何启用Rails中的嵌入式图像消毒?

如何在嵌入式数组mongodb中查询嵌入式文档

如何从嵌入式资源加载图像

如何在嵌入式tomcat中添加ServletContextListener

如何在嵌入式文档中查找某个元素

如何在WKWebView中启用嵌入式YouTube视频?

如何在 MongoDb 中查询嵌入式文档?

如何在Android嵌入式卡中设置setText()

如何在嵌入式CSS中编写a:hover?

如何在嵌入式函数中存储值

如何在Go中读取嵌入式字段?

如何在jQuery中调用嵌入式函数?

如何在SVG中制作嵌入式投影

如何在mongodb中搜索嵌入式文档?

如何在嵌入式Jetty中配置ErrorPageErrorHandler?

如何在Meteor中循环浏览嵌入式文档

如何修复 Python 3 中的未绑定本地错误

如何从symfony 2控制器中删除嵌入式表单中的表单字段

如何在Word中将嵌入式图像转换为浮动图像?