作成されたいくつかのテストに応じて、画像を赤または緑に設定する小さなアプリケーションがあります。テストには数秒かかる場合があり、それぞれに画像が接続されたカスタム コントロールがあります。[開始] をクリックすると、最初のテストを実行し、その画像を変更して結果を表示し、次に進みます。しかし、現状では、すべてのテストが行われ (おそらく 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;
}