我有一个ListBox显示有关汽车的一些信息。所以,我有ViewModel:
private ObservableCollection<Car> _cars;
public ObservableCollection<Car> CarsList
{
get
{
return _cars;
}
set
{
_cars= value;
OnPropertyChanged("CarsList");
}
}
我已经实施了PropertyChanged,我得到了我的汽车列表就好了。我从我的ViewModel(而不是Window)加载我的CarsList。
我的Car对象有Name,Country,Url和Image对象,如下所示:
public class Car
{
public string Name { get; set; }
public string Country { get; set; }
public Image Image { get; set; }
}
public class Image
{
public string Url { get; set; }
}
我需要将Name,Country和Image.Url绑定到ListBox中的文本框。我这样做了:
<ListBox Name="lbEvents" ItemsSource="{Binding Path=CarsList}">
<ListBox.ItemTemplate>
<DataTemplate>
<DockPanel>
<StackPanel>
<TextBlock Name="txtCarName" Text="{Binding Path=Name}" />
<TextBlock Name="txtCarCountry" Text="{Binding Path=Country}"/>
<!-- How do I bind this properly? -->
<Image Name="imgCarImage" Source="{Binding Path=Car.Image.Url}" />
</StackPanel>
</DockPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
问题是我的车名和国家/地区在每个车的ListBox中都正确显示。但Car.Image.Url什么都没显示。我是WPF的新手,如何将Image.Url正确绑定到ImageBox?
答案 0 :(得分:1)
正如Name
和Country
是Car
类的属性一样,Image
也是如此。看看你绑定到Name
和Country
的方式,你没有将其指定为Car.Name
,那么为什么要Image
呢?只需Image
代替Car.Image
。