3

我有带有 MVVM 应用程序的 WPF。ViewModel 和 View 是连接的。View 中的控件绑定到 ViewModel,ViewModel 继承 INotifyChanged。ViewModel 中的简单控件更新工作正常。

我想创建一些包含一些信息字段的信息类。接下来,我想创建自己的线程,将 Info 类中的字段映射到 ViewModel 中更新 View 的字段。Info 类的对象将用作 ViewModel 中调用的函数的 arg。

private int someControl;
public SomeControl {
    get{return someControl;}
    set 
    {
        someControl = value;
        OnPropChanged("SomeControl");
    }

private InfoClass info = new InfoClass();
Thread thread = null;

public ViewModel()
{
    Thread thread = new Thread(new ThreadStart(update));
    thread.IsBackground = true;
    thread.start();

    someLongFunction(info);
}

private void update()
{
    SomeControl = info.someField;
    thread.sleep(1000);
    update();
}

我应该添加或更改什么以定期获取更新?现在,仅当 someLongFunction 结束其工作时才进行更新。

4

1 回答 1

0

如果您真正想要的是连续的视图更新,那么您不必为此创建线程,因为您必须在 Dispatcher 线程(UI 线程)上进行这些更新。相反,您可以使用专为这种情况构建的DispatcherTimer 类,您可以提供一个间隔,并且 DispatcherTimer 将在该间隔定期调用您的方法,并将在 Dispatcher Thread 上自动执行此操作。

于 2013-03-06T23:03:23.383 回答