我不确定这里有什么问题,但我的图片不会显示出来。我的对象的所有其他属性都会显示,但图像永远不会加载。我在浏览器中尝试了网址,图像显示在那里。这是我的代码:
使用MVVM Light,设置视图模型
DataContext="{Binding Main, Source={StaticResource Locator}}">
我的带有数据绑定的xaml
<ItemsControl ItemsSource="{Binding AllItems}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<StackPanel Height="200">
<!--<StackPanel.Background>
<ImageBrush ImageSource="PodImages\podstate-Clip.png" />
</StackPanel.Background>-->
<Image Source="{Binding ImageUri}"/>
<StackPanel Orientation="Horizontal">
<StackPanel>
<TextBlock Text="{Binding Summ}" FontSize="32" Foreground="Green"/>
<TextBlock Text="{Binding Brand}" FontSize="32" Foreground="Blue"/>
<TextBlock Text="{Binding L1}" Width="350" TextWrapping="Wrap" Foreground="Blue"/>
</StackPanel>
<TextBlock Text="{Binding Val}"/>
</StackPanel>
</StackPanel>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
我的数据模型
public class Offer
{
public long ID { get; set; }
public int Type { get; set; }
public string Summ { get; set; }
public string L1 { get; set; }
public string Brand { get; set; }
public string ImageUri { get; set; }
}
我的数据服务回调。这是按预期设置我的收藏。 ImageUri包含有效的uri。
private void OffersLoaded(OfferDetailsWithMsg offers)
{
AllItems = offers.Items.Where(item => item.Type == 0).ToList();
}
最后是我的AllItems属性。是的我打电话给RaisePropertyChanged
(为了简洁起见,删除了支持属性)
public List<Offers> AllItems
{
get
{
return _allItems;
}
set
{
if (_allItems == value)
{
return;
}
_allItems= value;
RaisePropertyChanged(AllItemsPropertyName);
}
答案 0 :(得分:0)
我认为您需要绑定到Uri
而不是string
。在Offer类中,尝试添加以下属性,并绑定到该属性。
public Uri ImgUri
{
get
{
return new Uri(ImageUri, UriKind.Absolute); //or relative, if it is relative
}
}
答案 1 :(得分:0)
啊,这些是Gif的,看来Gif不受支持。