0

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

2 に答える 2