我已將單個項目添加到ItemsSource
這是一個文件夾路徑,所有圖像將被添加到ListBox
但我想添加更多的項目到現有的ListBox
使用相同的ItemsSource
如何做到這一點?如何將多個項目添加到ItemsSource WPF多個集合綁定?
List<string> folders = new List<string>();
private void ComboBox1_Loaded(object sender, RoutedEventArgs e)
{
folders.AddRange(Directory.EnumerateFiles(@"C:\Users\images1", "*.*").ToList());
imageItems.ItemsSource = folders;
}
private void ComboBox2_Loaded(object sender, RoutedEventArgs e)
{
folders.AddRange(Directory.EnumerateFiles(@"C:\Users\images2", "*.*").ToList());
imageItems.ItemsSource = folders;
}
<ListBox x:Name="imageItems" ScrollViewer.HorizontalScrollBarVisibility="Disabled">
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel IsItemsHost="True" />
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<Image Source="{Binding}" Width="120" Height="120"/>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ListBox>
但只有項被添加並顯示沒有ComboBox1_Loaded
我怎樣才能得到這兩個項目?
不是List的''使用'ObsevableCollection ',它實現'INotifyCollectionChanged'接口。它沒有'AddRange'所以將需要一個 –
dkozl
添加的項目之一創建'folders'只有一次,因爲那麼你只改變,因爲該清單和項目'imageItems.ItemsSource = folders'並沒有影響,因爲它是還是同樣的名單。如果不重新創建列表,你需要列出其當藏品已經改變,'ObsevableCollection通知UI'正是這麼做的 –
dkozl
感謝你的答案:) – Neo