1

ユーザーがボタンをクリックするとトリガーされる Silverlight アプリケーションの一部としてプログレスバーを作成しています。今のところ、必要に応じて機能することを確認できるように、ランダムな時間にランダムな増分で更新するだけです。Progressbar の値を更新するコードはかなり簡単ですが、Progressbar の実際の表示は更新されません。これに使用するコードは次のとおりです。

Random randomGen = new Random();

while (submitProgress.Value < submitProgress.Maximum)
{
    System.Threading.Thread.Sleep(randomGen.Next(100, 500));
    submitProgress.Value += randomGen.Next(3, 7);
}

プログレスバーの作成に使用する XAML は次のとおりです。

<ProgressBar Grid.Row="2" Height="30" Width="400" IsIndeterminate="False" 
Minimum="0" Maximum="100" Value="0" Name="submitProgress"></ProgressBar>

明確にするために、プログレスバーは終了時に完了状態に更新されますが、開始から終了までの中間更新はありません。私からさらに情報が必要な場合は、お知らせください。ありがとうございました!

4

1 に答える 1

2

プロセスを実行しているスレッドは何ですか?メインスレッドで実行している場合、処理が完了するまでUIは更新されません。処理にはBackgroundWorkerを使用することをお勧めします。UIを更新するとき、またはUIにバインドされたオブジェクトを更新するときは、ディスパッチャーを使用する必要があります。

于 2012-06-28T13:34:19.497 に答える