Xamarin.Forms ImageCell不显示图像?

时间:2018-11-16 11:46:37

标签: xamarin.forms

我有一个ImageCell作为ListView的一部分,它应该显示通过数据绑定从ViewModel获取的页面的三条信息。

XAML:

<ListView x:Name="ScoreListView" ItemsSource="{Binding DBScores}"
    IsPullToRefreshEnabled="True" RefreshCommand="{Binding RefreshScoresAsyncCommand}" IsRefreshing="{Binding IsBusy, Mode=OneWay}"> 
    <ListView.ItemTemplate>
        <DataTemplate>
            <ImageCell 
                Text="{Binding DisplayName}"
                Detail="{Binding Points}"
                ImageSource="{Binding SyncImagePath}"/>
        </DataTemplate>
    </ListView.ItemTemplate>

C#

DBScores = new ObservableCollection<ScoresTable>();

...

var downloadedList = await App.AzureService.GetScores();                                                        
downloadedList = downloadedList.OrderByDescending(x => x.Points).ThenBy(x => x.DisplayName).ToList();

DBScores = new ObservableCollection<ScoresTable>();                                                         

foreach (ScoresTable element in downloadedList)                                                         
{
    if(element.Synced == 0)
    {
        element.SyncImagePath = "notsynced.png";
    }
    else
    {
        element.SyncImagePath = "synced.png";
    }
    DBScores.Add(element);                                                                              
}

...

public class ScoresTable
{
    [JsonProperty("Id")]
    public string Id { get; set; }
    public string DisplayName { get; set;}   
    public int Points { get; set; }
    public DateTime AchievedOn { get; set; }
    public int Synced { get; set; }
    public string Latitude { get; set; }
    public string Longitude { get; set; }
    [JsonIgnore]
    public string SyncImagePath { get; set; }
}

DisplayNamePoints的绑定工作正常。我将相关图像放置在Android项目的Resources/drawable文件夹中,并将其添加到Visual Studio项目中。他们的名字拼写正确且大小写正确。当我从数据库加载图像时,我检查了它们的Synced属性,并将图像路径设置为两个图像之一。 synced.pngnotsynced.png

我不知所措,因为这在我昨天回家时有效,现在却不行了。我曾尝试在VS中进行清理,然后手动删除bin和obj文件夹并重建项目。

编辑1;构建操作设置为AndroidResource

编辑2;我看到的是This

3 个答案:

答案 0 :(得分:3)

从3.4.0.1008975降级为3.3.0.967583对其进行了修复。一定是新更新有问题或我未曾见过的某些变化。发行说明中没有提到对ImageCell的任何更改。

答案 1 :(得分:1)

我遇到了与您完全相同的问题,并且还通过从Xamarin.Forms 3.4.0.1008975还原到3.3.0.967583来解决了该问题。如您所述,发行说明中没有提到对ImageCell的任何更改。我向Xamarin.Forms GitHub页面提交了一个问题(并将此StackOverflow帖子用作参考,我希望这没问题。我不认为这是功劳)。

https://github.com/xamarin/Xamarin.Forms/issues/4584

编辑:他们确实承认这是一个错误,并且已将其修复,我发现(在撰写本文时)最新的稳定版本为v3.4.0.1009999。

答案 2 :(得分:0)

在使用Xamarin.Forms v4.4.0.x的ImageUrl中,存在与“ https:// ...”相同的问题。更新到最新的4.6.0.x,问题消失了,图像显示正确。