【发布时间】:2010-09-20 03:54:51
【问题描述】:
我有绑定到 ObservableCollection 的 WPF ListBox, 当集合发生变化时,所有项目都会更新它们的位置。
新位置存储在集合中,但 UI 不会更新。 所以我添加了以下内容:
void scenarioItems_CollectionChanged(object sender, System.Collections.Specialized.NotifyCollectionChangedEventArgs e)
{
ToolboxListItem.UpdatePositions();
lstScenario.ItemsSource = null;
lstScenario.ItemsSource = ToolboxListItem.ScenarioItems;
this.lstScenario.SelectedIndex = e.NewStartingIndex;
}
通过将 ItemsSource 设置为 null 然后再次绑定,更新 UI,
但这可能是非常糟糕的编码:p
建议?
【问题讨论】:
-
您能否详细说明“当集合更改时,所有项目都会更新其位置”的含义,以便我确定我正确回答了您的问题?
标签: wpf data-binding listbox observablecollection