2017-03-31 45 views
1
string[] list = Directory.GetFiles(@"Resources/", "*.jpg"); 
lvDataBinding.Items.Add(list[0]); 

因此,资源文件夹包含几个图像,我想添加到一个数组,所以我可以用一个更简单的方式使用它们。C# - 如何将文件夹中的图像添加到数组并将它们显示在列表视图中?

我需要将它们显示在一个窗口中(每次选择不同的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 .:我尊重所有关于如何以另一种更好的方式做到这一点的建议。我确定有更好的方法,但我正在做一项大学作业,而且时间有限,我的老师也建议将对象“转移”到新窗口中。 在此先感谢!

+0

用'ICollection'属性创建一个'ViewModel'和使用该财产为'ItemsSource'你'ListBox'。 – AnjumSKhan

+0

你能详细谈谈细节吗?我不太明白。另外,我有ListView而不是ListBox。 – Yanketz

+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" /> 
+0

非常感谢。如果我有.jpg和.png,如何更改路径数组?另外我该如何选择要设置的路径?我假设在行“路径=路径”它会像“路径= picture.png”? – Yanketz

+0

我不确定我的理解。每个图像都有一个完整的路径,指定文件的目录和名称。 – mm8

+0

给我一个例子,我将如何在上面的代码中使用图片“asus.jpg”。我把它放在哪里。 – Yanketz

相关问题