如何根据其值更新Silverlight Progressbar?

时间:2012-06-28 13:28:05

标签: c# silverlight

我正在将Progressbar作为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>

要清楚,Progressbar在完成时会更新到已完成状态,但从开始到结束都没有中间更新。如果您需要我的更多信息,请告诉我。谢谢!

1 个答案:

答案 0 :(得分:2)

您正在运行哪个线程?如果您在主线程上运行,则UI将不会更新,直到处理完成。我建议使用BackgroundWorker进行处理。在更新UI或更新绑定到UI的对象时,您需要使用Dispatcher