0
嘿我有一個列表框,我將ItemsSource設置爲從我的數據庫的ObservableCollection對象,我需要添加一個單一的對象在此列表的末尾。但是,我不斷收到無效的操作異常。不知怎的,我的列表框在這裏使用的是我的列表框代碼(在我心目中是一個給定的,因爲它顯示並已具備內的項目。):WPF將對象添加到ListBox與現有的ItemsSource
<ListBox x:Name="CarList" SelectionChanged="ItemSelected" ScrollViewer.HorizontalScrollBarVisibility="Disabled" Background="{x:Null}">
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel FlowDirection="LeftToRight" ItemHeight="300" ItemWidth="300"/>
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
<ListBox.ItemTemplate>
<DataTemplate>
<Grid Margin="10,10">
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="35" />
</Grid.RowDefinitions>
<Image Grid.Row="0" Source="{Binding image_path}" VerticalAlignment="Stretch"/>
<Grid Grid.Row="1" Background="SteelBlue">
<TextBlock HorizontalAlignment="Left" VerticalAlignment="Center" Margin="3" Text="{Binding model}"/>
<TextBlock HorizontalAlignment="Right" VerticalAlignment="Center" Margin="3" Text="{Binding price}"/>
</Grid>
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
我首先設置的ItemsSource就像這樣:
CarList.ItemsSource = CarController.GetAllCars();
,然後要加我的自定義對象是這樣的:
ListBoxItem carAdd = new ListBoxItem();
carAdd.Content = new CarModel{ image_path = "/../Assets/add-512.png", id=-1};
CarList.Items.Add(carAdd);
但可惜最後的操作失敗此消息:
在ItemsSource正在使用時,操作無效。改爲使用ItemsControl.ItemsSource訪問和修改 元素。
我已經尋找了一些其他的建議,但在他們的例子中都使用字符串和單個綁定,因此我一直無法弄清楚究竟要做什麼。如果有人有一個建議,將不勝感激。
- 謝謝。
哦 - 這非常有意義。現在當閱讀其他答案和指導時,我終於明白了這一點。不知何故,這飛到了我的頭上。 – Swidtter 2014-12-07 23:08:17