私は次のコードを持っている:長時間実行しているプロセスを呼び出す前に、ビューモデルのプロパティを更新するにはどうすればよいですか?
今Public Async Sub ExecuteMyCommand
ShowProgressBar=True
Await Task.Run(Sub() CallLongRunningProcess)
ShowProgressBar=False
End Sub
問題:長時間実行プロセスは、このコードを開始する前に、実際に表示するようにUIにプログレスバーを取得するには
Public Sub ExecuteMyCommand
ShowProgressBar=True
CallLongRunningProcess
ShowProgressBar=False
End Sub
はに書き換えなければなりません:
長時間実行されるプロセスでは、WPF UserControlを作成する方法があります。これらはSTAスレッドで作成する必要があります。私はこれを行う方法を見つけましたが、ユーザーコントロールが非UIスレッドによって所有されているため、InvalidOperationExceptionが発生します。ですから、私は、UIスレッド上で長時間実行されているプロセスを呼び出す前にShowProgressBarプロパティを更新する方法を探しています(ええと、醜い、私が知っている)。
「UIスレッドで長時間実行されているプロセスを呼び出す前にShowProgressBarプロパティを更新する方法を探しています」という意味は何ですか? – Sybren
@Sybren ShowProgressBarプロパティは、ビューのProgressBar.Visibilityプロパティにバインドされています。ごめんなさい。 – Dabblernl