C# 如何显示包含图像的对象列表并将其绑定到源MVVM
我想显示图片列表,并在每张图片下面发布一些关于它们的信息。 我尝试传递模型的C# 如何显示包含图像的对象列表并将其绑定到源MVVM,c#,.net,wpf,mvvm,C#,.net,Wpf,Mvvm,我想显示图片列表,并在每张图片下面发布一些关于它们的信息。 我尝试传递模型的observateCollection,并将其绑定,但它不起作用。现在我正在传递位图图像的observateCollection,它正在显示图像,但我无法获取信息。有什么想法吗?我在WPF和MVVM一起工作 到目前为止,我尝试的是: 查看: <Grid> <ListView ItemsSource="{Binding ImageModels}" ScrollView
observateCollection
,并将其绑定,但它不起作用。现在我正在传递位图图像的observateCollection
,它正在显示图像,但我无法获取信息。有什么想法吗?我在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
,但你明白了重点。
最重要的属性是数据
,因为我使用它来填充源代码,或者至少我正在尝试。
加载
ViewModel
时,我从数据库中获取图像,并用BitmapImage
填充每个图像的数据属性,所以我将其用作源代码 假设您的ImageModel
类
public class ImageModel
{
public string Path { get; set; }
public string Title { get; set; }
}
您的ViewModel属性将是
public ObservableCollection<ImageModel> Images = new ObservableCollection<ImageModel>();
公共ObservableCollection图像=新ObservableCollection();
您的XAML应该具有如下绑定
假设您的
ImageModel
类
public class ImageModel
{
public string Path { get; set; }
public string Title { get; set; }
}
您的ViewModel属性将是
public ObservableCollection<ImageModel> Images = new ObservableCollection<ImageModel>();
公共ObservableCollection图像=新ObservableCollection();
您的XAML应该具有如下绑定
ImageModels类中有什么?数据和标题必须是ImageModel类的公共属性。绑定必须是{Binding Data}
和{Binding Title}
。还请注意,ItemsSource=“{Binding Images}”
未绑定到ImageModels
属性(因为它使用不同的属性名称)。@dhilmathy Iedited@Clemens我的属性叫做图像,我只是粘贴了一个错误的,这不是问题所在。我可以展示我在哪里填充ImageModel的u方法?无论如何,正如前面所说的,您的绑定路径是错误的。它应该是{Binding Data}
,而不是{Binding ImageModels.Data}
您的ImageModels
类中有什么?数据和标题必须是ImageModel类的公共属性。绑定必须是{Binding Data}
和{Binding Title}
。还请注意,ItemsSource=“{Binding Images}”
未绑定到ImageModels
属性(因为它使用不同的属性名称)。@dhilmathy Iedited@Clemens我的属性叫做图像,我只是粘贴了一个错误的,这不是问题所在。我可以展示我在哪里填充ImageModel的u方法?无论如何,正如前面所说的,您的绑定路径是错误的。应该是{Binding Data}
,而不是{Binding ImageModels.Data}
我真的不明白?我需要一个对象列表,在这里我可以展示一个对象,我错了吗?好的,我明白你想说什么。我会试试的now@Serlok由于您的itemsource
绑定到ImageModel
的集合,因此每个ListViewItem
将属于ImageModel
类型。因此,您可以在绑定中单独指定属性名称。的确,这是一个愚蠢的错误,但这是一个漫长的编程日,我完成了这个项目,泰先生。我真的不明白?我需要一个对象列表,在这里我可以展示一个对象,我错了吗?好的,我明白你想说什么。我会试试的now@Serlok由于您的itemsource
绑定到ImageModel
的集合,因此每个ListViewItem
将属于ImageModel
类型。因此,您可以在绑定中单独指定属性名称。确实,这是一个愚蠢的错误,但这是一个漫长的编程日,我完成了这个项目,先生。