我有一个使用MVVM的应用程序。
我在以下超链接http://b-i.forbesimg.com/spleverage/files/2013/04/silver-apple-logo-apple-picture.jpg
上有一个图像,我希望将其作为源列在我的列表框中。
在我的listbox datatemplate中查看下面我绑定图像源(这是一个超链接),如下所示。我希望在列表框中看到图像,但是没有加载任何内容。我错过了什么?
<DataTemplate x:Key="UserDataTemplate">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<Grid Grid.Column="0">
<Image Source="{Binding Image}"></Image>
</Grid>
<Grid Grid.Column="1">
<TextBlock Text="{Binding Name}"/>
</Grid>
</Grid>
</DataTemplate>
{Binding Image}中传递的值为“http://b-i.forbesimg.com/spleverage/files/2013/04/silver-apple-logo-apple-picture.jpg”。知道为什么图像不会加载吗?
答案 0 :(得分:1)
我做了一个快速测试,图片非常大,有可能存在,但是因为Grid
的{{1}}大小没有限制,只显示全尺寸图像你可以看到这一切,只是一个空角。
使用DataTemplate
我添加了DataTemplete
并显示确定。
TestCode:
代码:
MaxHeight
的Xaml:
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
Items.Add(new Item{Name = "Stack", Image = "http://b-i.forbesimg.com/spleverage/files/2013/04/silver-apple-logo-apple-picture.jpg"});
Items.Add(new Item { Name = "Overflow", Image = "http://b-i.forbesimg.com/spleverage/files/2013/04/silver-apple-logo-apple-picture.jpg" });
}
private ObservableCollection<Item> _items = new ObservableCollection<Item>();
public ObservableCollection<Item> Items
{
get { return _items; }
set { _items = value; }
}
}
public class Item
{
public string Image { get; set; }
public string Name { get; set; }
}
结果: