привязать выбранный элемент из коллекции с помощью выпадающего списка и привязать его к изображению

#c# #wpf

#c# #wpf

Вопрос:

Как я могу привязать выбранный элемент из коллекции с помощью выпадающего списка и привязать его к изображению?

 public class ElectrodePlacementScheme
{
    public BitmapImage Image { private set; get; }
    public String Name { private set; get; }

    public ElectrodePlacementScheme(BitmapImage image, String name)
    {
        Image = image;
        Name = name;
    }
}
  

Пользовательский контроль: здесь я инициализирую коллекцию по парам имени и изображения

 public partial class CheckECGUC : UserControl
{
    public ObservableCollection<ElectrodePlacementScheme> ElectrodePlacementSchemes { get; set; }

    public CheckECGUC()
    {
        InitializeComponent();

        ElectrodePlacementSchemes = new ObservableCollection<ElectrodePlacementScheme>();
        ElectrodePlacementSchemes.Add(new ElectrodePlacementScheme(new BitmapImage(new System.Uri(@"pack://application:,,,/Images/3CH_7Leads_Option1.png")), "Option 1"));
        ElectrodePlacementSchemes.Add(new ElectrodePlacementScheme(new BitmapImage(new System.Uri(@"pack://application:,,,/Images/3CH_7Leads_Option2.png")), "Option 2"));
    }
}
  

xaml: здесь я пытаюсь привязать изображение к выпадающему списку

 <ComboBox x:Name="optionSelector" ItemsSource="{Binding ElectrodePlacementSchemes}" DisplayMemberPath="Name"/>
    <Image Source="{Binding Path=optionSelector, ElementName=SelectedItem}"/>
</ComboBox>
  

я вижу в выпадающем списке элементы: вариант 1, вариант 2, но это не может отразиться на изображении: изображение не меняется

Спасибо

Ответ №1:

 <ComboBox x:Name="optionSelector" ItemsSource="{Binding ElectrodePlacementSchemes}" DisplayMemberPath="Name"/>
                <Image Source="{Binding SelectedItem.Image, ElementName=optionSelector}">
  

Комментарии:

1. Ну, да. Но этот ответ нуждается в лучшем форматировании.

Ответ №2:

Или это:

     <ComboBox x:Name="optionSelector"
              DisplayMemberPath="Name"
              ItemsSource="{Binding ElectrodePlacementSchemes}"
              SelectedValuePath="Image" />
    <Image Source="{Binding Path=SelectedValue, ElementName=optionSelector}" />