WPF UI를 .NET 2.0 응용 프로그램에 통합해야합니다.System.Windows.Forms.Application과 System.Windows.Application 간의 상호 운용성
ObservableCollection에이 GUI 디스패처 스레드에서 수정해야합니다, 그래서 프로젝트가 원래 .NET 2.0로 기록 된 이후, 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);
}
그러나 관련된 솔루션을 함께했다 메인 스레드는 System.Windows.Forms.Application
를 사용 그래서 System.Windows.Application.Current
은 null입니다.
System.Windows.Forms.Application
을 System.Windows.Application
으로 바꿀 수는 없습니다. 내 애플리케이션이이 API를 많이 사용하고 있으며 두 클래스가 널리 호환되지 않기 때문입니다.
현재 가지고있는 방법이 있습니까 System.Windows.Application
? 또는 내 System.Windows.Forms.Application
에 BeginInvoke()
으로 전화하는 방법은 무엇입니까? 또는 올바른 스레드에서 컬렉션의 버전을 위임하기 위해 내 자신의 DIY 시스템을 작성한 것으로 간주됩니까?