私はMVVMアプリでWPFを持っています。ViewModel と View が接続されています。View からのコントロールは ViewModel にバインドされ、ViewModel は INotifyChanged を継承します。ViewModel での単純なコントロールの更新は正常に機能します。
いくつかの情報フィールドを含む情報クラスを作成したいと思います。次に、Info クラスのフィールドを、View を更新する ViewModel のフィールドにマップする独自のスレッドを作成したいと考えています。Info クラスのオブジェクトは、ViewModel で呼び出される関数の引数として使用されます。
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 がジョブを終了したときのみです。