编辑整个帖子以澄清......我似乎无法确定这一点:
BackgroundWorker 从作为对象列表的 WCF 服务接收数据。服务引用配置为 ObservableCollection。
我通过委托将 ObservableCollection 传递到我的主 UI 线程并将其设置为等于 UI 线程 Local Collection。
列表框绑定到此本地集合并且不会更新。我已将以下内容添加到我的收藏中:
public ObservableCollection<EmployeeData> _empData { get; set; }
public event PropertyChangedEventHandler PropertyChanged;
public ObservableCollection<EmployeeData> EmpData
{
get { return _empData ; }
set
{
_empData = value;
OnPropertyChanged("EmpData");
}
}
private void OnPropertyChanged(string p)
{
PropertyChangedEventHandler handler = PropertyChanged;
if (handler != null)
handler(this, new PropertyChangedEventArgs(p));
}
这甚至会触发,但 PropertyChanged 始终为空。我的 XAML 列表框有一个绑定声明为:
ItemsSource="{Binding Path=EmpData}"
无论我做什么 EmpData 更新但 ListBox 没有,我尝试了其他几种方法,但列表框中没有任何变化,它总是为空。
我已经为此工作了一天多,我似乎无法让整个自动更新的东西“点击”。