【发布时间】:2011-01-23 21:39:18
【问题描述】:
我有一个名为 MainWindow 的主窗口类的 WPF 应用程序。 由于我有其他类需要访问 UI 线程的 Dispatcher 来更新有界列表,所以我找到了这个解决方案:
我做了一个静态类:
static class UI
{
static public MainWindow window;
}
并在应用构造函数中添加以下行:
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
UI.window = this;
...
现在我可以使用 UI.window.Dispatcher.Invoke(). 访问我的 GUI 组件了
问题是 - 这是一个好的编程习惯吗? 有没有更好的方法?
谢谢
更新:
我似乎只有在更新绑定到第 3 方控件的 ObservableCollection 时才抛出异常。我有另一个绑定到列表框的静态 OC(以显示更新的消息),我可以在不使用调度程序的情况下从其他线程更新那个。 怎么来的? 是因为它是静态的OC还是和控件有关?
【问题讨论】: