を実行している間、私は次のコードを持っている:更新UIタスク
progressBar1.Minimum = 0;
progressBar1.Maximum = Results.Count;
foreach (MyClass cls in Results)
{
progressBar1.Value += 1;
// Go to DB and get large quantity of data
cls.GetHistoryData();
}
私が何をしたいのですが何をprogressBar1のが正しく更新されるように、別のスレッドに処理を移すです。私はarticleを見つけました。これは、プログレスバーでInvokeメソッドを使用できるはずだが、1つのようには見えないことを意味します。
これは理想的なソリューションのようです。残念ながら、それは動作していないようです。私は進歩がクラスレベルの変数として設定される必要があると仮定しています(それ以外の場合はそれを認識しません)。何か他に必要なことはありますか? –
あなたの設定によって異なります。あなたはUserControl/Windowにプロパティを追加し、このポストのようにバインドすることができます:http://goo.gl/ZMcnp さらに理想的には、MVVMを使うと、 CurrentProgressプロパティを持つProgressDialogViewModelクラスのDataTemplateと、MessageプロパティとTiltleプロパティなどのその他のものがあります。 DataTemplateでは、それらのプロパティに対してバインドします。 – bitbonk
+1 - ベストソリューション。しかし、 "Progress"の依存関係プロパティを実装する代わりに、INotifyPropertyChangedを使用します。 –