我有一个小应用程序,它应该根据所做的一些测试将图像设置为红色或绿色。测试可能需要几秒钟,并且每个都有一个自定义控件,其中连接了一个图像。当我单击开始时,我希望完成第一个测试,通过更改该图像上的图像来显示结果,然后继续。但就像现在一样,所有的测试都完成了(可能需要 10 秒),然后所有的灯都在同时改变。如何在执行期间强制自定义控件更新图像?
private void start_Click(object sender, RoutedEventArgs e)
{
foreach (TestObject tObj in tObjList)
{
bool testResult = tObj.makeTest();
foreach (TestShower ts in m_TSList)
{
if (tObj == ts.gettObj())
{
if (testResult == true)
ts.setLightOn();
else
ts.setLightOff();
ts.UpdateLayout();
break;
}
}
}
}
public void setLightOn()
{
string strUri2 = String.Format(@"pack://application:,,,/;component/Images/Signal_On.png");
BitmapImage img = new BitmapImage(new Uri(strUri2));
iStatus.Source = null;
iStatus.Source = img;
}
public void setLightOff()
{
string strUri2 = String.Format(@"pack://application:,,,/;component/Images/Signal_Off.png");
BitmapImage img = new BitmapImage(new Uri(strUri2));
iStatus.Source = null;
iStatus.Source = img;
}