我有WPF和MVVM应用程序。 ViewModel和View已连接。 View中的控件绑定到ViewModel,ViewModel继承INotifyChanged。 ViewModel中的简单控件更新工作正常。
我想创建一些包含一些信息字段的信息类。接下来,我想创建自己的线程,将Info类中的字段映射到更新View的ViewModel中的字段。 Info类的Object将用作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结束其工作时才更新。
答案 0 :(得分:0)
如果你真正想要的是连续视图更新,那么你不必为此创建一个线程,因为那时你必须在Dispatcher线程(UI线程)上进行这些更新。相反,您可以使用专为此类情况构建的DispatcherTimer class,您可以提供间隔,DispatcherTimer将在该时间间隔内定期调用您的方法,并在Dispatcher Thread上自动执行此操作。