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: "Items collection must be empty before using ItemsSource" whats a problem?
You want to create the list only once and assign the data source only once! Therefore, create the list before the loop and assign the 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;
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With