2017-03-31 65 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

相關問題