2009-09-14 67 views
1

因此,我花了大量时间使用ContinuousLinq在我的客户端应用程序中使用LINQ将集合绑定到WPF。现在我开始测试并发现ComboBoxes不支持跨线程收集更改通知。LINQ WPF绑定跨线程集合更改通知

有谁知道一个Bindable LINQ解决方案,它有一个强制更改事件在给定UIThread上引发的选项?

回答

1

由于ContinuousLinq是开源的,你可以修改它来添加这种行为......

这里是如何与ObservableCollectionan example。您可能可以对ContinuousLinq使用相同的原理。

+0

我是一个VB.Net编码器,所以我是C#和一个更糟糕的作家慢读者。我发现另一个简单的例子,如何重写ObservableCollection,但我只是不能让一部分在VB中工作 基本上,我GetInvocationList的CollectionChanged事件,但无法弄清楚如何在VB中做到这一点。 Dim eventHandler As System.Collections.Specialized.NotifyCollectionChangedEventHandler = CollectionChanged – JoshKraker 2009-09-15 00:03:49

+0

是我翻译的C#,但这行给了我一个错误,说这个CollectionChanged是一个事件,不能直接调用。我如何获得VB.NET中的事件的调用列表? – JoshKraker 2009-09-15 00:04:23

+0

好的,我刚刚提出了你的第一个建议。我在ContinuousLinq中找到引发事件的区域,并发现它实际上已经使用从实例化集合的线程分配的Dispatcher。我向该集合添加了一个属性,以允许我设置自己的调度程序。 谢谢Tom的建议。 – JoshKraker 2009-09-15 01:36:39