我想显示图像的列表,并张贴有关他们每个图像下面的一些信息。我想通过我的模型ObservableCollection
和约束力,但它不能正常工作。现在我路过BitmapImages的ObservableCollection
,它会显示图像,但我无法获取信息。有任何想法吗?我在WPF的工作与MVVM。
我试过到目前为止:
视图:
<Grid>
<ListView ItemsSource="{Binding ImageModels}"
ScrollViewer.VerticalScrollBarVisibility="Visible"
ScrollViewer.CanContentScroll="False" MaxHeight="550">
<ListView.ItemTemplate>
<DataTemplate>
<StackPanel>
<Image Source="{Binding ImageModels.Data}" />
<TextBlock Text="{Binding ImageModels.Title}"/>
</StackPanel>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
</Grid>
视图模型:
public ObservableCollection<ImageModel> ImageModels { get; set; }
ImageModel
private string description;
private string title;
private string path;
private BitmapImage data;
public short Id { get; set; }
public short UserId { get; set; }
public DateTime Created { get; set; }
public string Description
{
get { return description; }
set
{
if (description != value)
{
description = value;
OnPropertyChanged("Description");
}
}
}
我没有表现出ü整个ImageModel
但你明白了吧。最重要的属性是Data
因为我使用一个填充源,或者至少我尝试。而加载时ViewModel
我从DB获得的图像和填充BitmapImage
每个图像的数据属性,所以这就是为什么我使用它的源。
假设你ImageModel
类就会像,
public class ImageModel
{
public string Path { get; set; }
public string Title { get; set; }
}
您的视图模型属性会
public ObservableCollection<ImageModel> Images = new ObservableCollection<ImageModel>();
你的XAML应该像绑定
<ListView ItemsSource="{Binding Images}">
<ListView.ItemTemplate>
<DataTemplate>
<StackPanel>
<Image Source="{Binding Path}"/>
<TextBlock Text="{Binding Title}"/>
</StackPanel>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>