Jak zmienić źródło obrazu dynamicznie z kodu za WPF z obrazem w Properties.Resources?

Mam aplikację WPF, która musi przekazać użytkownikowi informacje o stanie wewnętrznym. Projekt ma mieć trzy obrazy, nazwij je Czerwonym, Żółtym i Zielonym. Jeden z tych obrazów będzie wyświetlany jednocześnie w zależności od stanu. Oto punkty:

Trzy obrazy znajdują się w Properties.Resources w code-behindTylko jeden obraz będzie wyświetlany na raz.Zmiana stanu pochodzi z procesu z tyłu kodu, a nie od użytkownika.Chciałbym powiązać formant obrazu, aby móc zmienić obraz z tyłu kodu.

Zakładam, że będę potrzebował konwertera obrazów, aby zmienić obraz JPG na źródło obrazu, takie jak:

[ValueConversion(typeof(System.Drawing.Bitmap), typeof(ImageSource))]
public class BitmapToImageSourceConverter : IValueConverter
{
    public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
    {
        var bmp = value as System.Drawing.Bitmap;
        if (bmp == null)
            return null;
        return System.Windows.Interop.Imaging.CreateBitmapSourceFromHBitmap(
                    bmp.GetHbitmap(),
                    IntPtr.Zero,
                    Int32Rect.Empty,
                    BitmapSizeOptions.FromEmptyOptions());
    }

    public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
    {
        throw new NotSupportedException();
    }
}

Wolałbym raz przekonwertować obrazy podczas inicjalizacji i zachować listę źródeł obrazu. Zakładam też, że do powiązania formantu potrzebna będzie właściwość zależności, ale nie jestem pewien, jak skonfigurować tę listę źródeł obrazu:

    // Dependancy Property for the North Image
    public static readonly DependencyProperty NorthImagePathProperty
        = DependencyProperty.Register(
            "NorthImagePath",
            typeof(ImageSource),
            typeof(MainWindow),
            new PropertyMetadata("**Don't know what goes here!!!**"));

    // Property wrapper for the dependancy property
    public ImageSource NorthImagePath
    {
        get { return (ImageSource)GetValue(NorthImagePathProperty); }
        set { SetValue(NorthImagePathProperty, value); }
    }

questionAnswers(1)

yourAnswerToTheQuestion