我必须将WPF UI集成到.NET 2.0应用程序中。
ObservableCollection需要在GUI调度器线程中进行修改,因此我提出了一个涉及
InvokeLater()
ObservableCollection<Item> items;
public delegate void AddItemDelegate(Item i);
public void AddItem(Item item)
{
System.Windows.Application.Current.Dispatcher.BeginInvoke(
new AddItemsDelegate(i => items.Add(i), item);
}
但是,由于项目最初是用.NET 2.0编写的,因此主线程使用
System.Windows.Forms.Application
如此
System.Windows.Application.Current
是空的。
我不能只换电流
system.windows.forms.应用程序
用一个
System.Windows.Application
因为我的应用程序严重依赖于这个API,所以这两个类是广泛不兼容的。
有办法得到电流吗
system.windows.应用程序
?或者一种打电话的方式
BeginInvoke()
在我身上
system.windows.forms.应用程序
?或者我被认为写了自己的DIY系统来从正确的线程委托集合的版本?