Error: item collection must be empty before using ItemsSource

my xaml file

<ListBox Height="522" HorizontalAlignment="Left" Margin="20,162,0,0" Name="listBox1" VerticalAlignment="Top" Width="448" ItemsSource="{Binding}"> <ListBox.ItemTemplate> <DataTemplate> <StackPanel Orientation="Horizontal"> <TextBlock Text="{Binding Text}" Foreground="#FFC8AB14" FontSize="36" /> </StackPanel> </DataTemplate> </ListBox.ItemTemplate> </ListBox> 

Xaml.cs file

  listBox1.Items.Clear(); for (int i = 0; i < tasks.Count(); i++) { List<Taskonlistbox> dataSource = new List<Taskonlistbox>(); dataSource.Add(new Taskonlistbox() {Text = "Blalalalala"} ); this.listBox1.ItemsSource = dataSource; // visual stdio shows error here: } 

Taskonlistbox:

 public class Taskonlistbox { public string Text { get; set; } } 

Error : "The item collection must be empty before using the ItemsSource" What is the problem?

+8
c # visual-studio windows-phone-7
source share
1 answer

You want to create a list only once and assign a data source only once! So create a list before the loop and assign a data source after the loop

 // Clear the listbox. // If you never add items with listBox1.Items.Add(item); you can drop this statement. listBox1.Items.Clear(); // Create the list once. List<Taskonlistbox> dataSource = new List<Taskonlistbox>(); // Loop through the tasks and add items to the list. for (int i = 0; i < tasks.Count(); i++) { dataSource.Add(new Taskonlistbox {Text = "Blalalalala"} ); } // Assign the list to the `ItemsSouce` of the listbox once. this.listBox1.ItemsSource = dataSource; 
+13
source share

All Articles