【发布时间】:2010-10-20 17:31:53
【问题描述】:
我的表单上有一个如下所示的列表框:
<ListBox Name="lbResults" SelectionChanged="lbResults_SelectionChanged"/>
我正在将以下集合绑定到它:
ObservableCollection<Hand> oHands = new ObservableCollection<Hand>();
使用以下代码:
lbResults.DataContext = oHands;
Binding binding = new Binding();
lbResults.SetBinding(ListBox.ItemsSourceProperty, binding);
oHands 集合通过后台工作程序填充,每当有新的 Hand 对象可用时,该工作程序就会通过事件进行通知。添加某些内容时,ListBox 会完美刷新。显示 Hand 对象的 ToString() 结果,这就是我想要的 - 到目前为止一切都很好。但是,当后台工作人员完成时
void finder_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
oHands = new ObservableCollection<Hand>(oHands.OrderBy(o => o.PotSize));
lbResults.SetBinding(ListBox.ItemsSourceProperty, new Binding());
}
列表中的项目仍按原始顺序显示。我可以确认列表已重新排序,但项目仍按原始顺序显示。如何刷新此绑定?
【问题讨论】:
标签: wpf data-binding listbox