Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/272.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何显示包含图像的对象列表并将其绑定到源MVVM_C#_.net_Wpf_Mvvm - Fatal编程技术网

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
类型。因此,您可以在绑定中单独指定属性名称。确实,这是一个愚蠢的错误,但这是一个漫长的编程日,我完成了这个项目,先生。