如何将多个项添加到ItemsSource WPF多个集合绑定中?

时间:2016-01-01 17:24:10

标签: c# wpf data-binding listbox wpf-controls

我已将单个项目添加到ItemsSource这是一个文件夹路径,所有图片都会添加到ListBox中,但我想使用相同的{{{}}将更多项目添加到现有ListBox中1}}怎么做?

ItemsSource

但只有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> 项被添加并显示为ComboBox2_Loaded 我怎样才能得到这两个项目?

1 个答案:

答案 0 :(得分:1)

您需要创建一个可以更改的列表,以便将文件名存储在:

ObservableCollection<string> folders = new ObservableCollection<string>();

从那里,您可以添加和删除所需的所有项目:

imageItems.ItemsSource = folders;

foreach (string file in Directory.EnumerateFiles(@"C:\Users\images1", "*.*"))
{
    folders.Add(file);
}

foreach (string file in Directory.EnumerateFiles(@"C:\Users\images2", "*.*"))
{
    folders.Add(file);
}