【发布时间】:2010-11-15 00:16:51
【问题描述】:
我有一个属性 o 类型“可观察的集合”...当我添加一个项目时它没有反映在 UI 中...做错了什么...?
<ComboBox Grid.Column="0" Grid.Row="3"
Width="120" SelectedIndex="0"
Margin="5,0,0,0" HorizontalAlignment="Left"
ItemsSource="{Binding AllPlaces}"
DisplayMemberPath="PlaceName"
SelectedItem="{Binding Path=SelectedPlace.Value, Mode=TwoWay}"
VerticalAlignment="Top">
</ComboBox>
// Add the new item to the existing place list, so that it will be refreshed.
ObservableCollection<PlaceDto> existingPlaceList = new ObservableCollection<PlaceDto>();
// Copy all places to a temperory list.
foreach(PlaceDto placeItem in AllPlaces)
{
existingPlaceList.Add(placeItem);
}
// Add new place to existing list
existingPlaceList .Add(newPlace);
AllPlaces= existingPlaceList;
【问题讨论】:
-
请在 xaml 中显示绑定并添加一个元素。
-
为什么要将所有地点复制到临时列表中?只需将该地点添加到 AllPlaces。 AllPlaces.Add(newPlace)。其余的都不需要。并在构造函数中初始化 AllPlaces 变量。
标签: wpf data-binding observablecollection