C# - 如何将图像从文件夹添加到数组并在listview中显示?

时间:2017-03-31 21:14:52

标签: c# wpf image

string[] list = Directory.GetFiles(@"Resources/", "*.jpg");
lvDataBinding.Items.Add(list[0]);

所以文件夹Resources包含了我想要添加到数组的几个图像,所以我可以更方便地使用它们。

我需要在窗口中显示它们(当选择了不同的listviewitem时,每个窗口都会显示它们。)

我想知道我是否也可以将它们存储在ListViewItem名称和描述旁边的类中。所以我可以这样做:

Article article1= new Article();
article1.Name = "Article name";
article1.Description = "Long article description etc etc";
article1.Image= images[0];
lvDataBinding.Items.Add(artikel1);

然后上课会是这样的吗?

public class Article
{
    public string Name{ get; set; }
    public string Description{ get; set; }
    public Image? Image { get; set; }

    public override string ToString()
    {
        return Naziv;
    }
}

P.S。:我尊重所有关于如何以另一种更好的方式做到这一点的建议。我确定有更好的方法,但我正在做大学任务,而且我的时间有限,我的老师也建议转移"对象进入新窗口。 提前谢谢!

1 个答案:

答案 0 :(得分:1)

您可以使用string属性存储图像的路径。请参阅以下示例代码。

<强>代码:

public class Article
{
    public string Name { get; set; }
    public string Description { get; set; }
    public string Path { get; set; }
}
...
string[] list = Directory.GetFiles(@"Resources/", "*.png");
List<Article> items = new List<Article>();
foreach (var path in list)
{
    items.Add(new Article()
    {
        Name = System.IO.Path.GetFileNameWithoutExtension(path),
        Path = path
    });
}
lvDataBinding.ItemsSource = items;

<强> XAML:

<ListView x:Name="lvDataBinding" DisplayMemberPath="Name" />
<Image Source="{Binding SelectedItem.Path, ElementName=lvDataBinding}" Stretch="None" />