2009-09-14 25 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