SelectedItem не будет привязываться к свойству

#c# #wpf

#c# #wpf

Вопрос:

У меня есть следующий выпадающий список:

     <ComboBox
      ItemsSource="{  Binding RclTypes }"
      DisplayMemberPath = "Key" SelectedValuePath = "Value"
      SelectedItem="{ Binding RclTypeSelected, Mode=TwoWay }"/>
  

Мой связанный файл ViewModel:

     private Dictionary<string, ProjectDto> _rclTypes;

    public Dictionary<string, ProjectDto> RclTypes
    {
        get => _rclTypes;
        set => SetProperty(ref _rclTypes, value);
    }

    private ProjectDto _rclTypeSelected;

    public ProjectDto RclTypeSelected
    {
        get => _rclTypeSelected;
        set => SetProperty(ref _rclTypeSelected, value);
    }
    public myConstructor()
    {
        PopulateRclTypes();
    }

    public void PopulateRclTypes()
    {
       _rclTypes = new Dictionary<string, ProjectDto>();

            foreach (ProjectDto runType in Enum.GetValues(typeof(ProjectDto)))
            {
                string firstThreeLettersOfRunTypeName = runType.ToString().Substring(0, 3);

                if (firstThreeLettersOfRunTypeName == "Rcl" amp;amp; runType.ToString().Length > 3)
                {
                    string displayRunTypeName = runType.ToString().Substring(3, runType.ToString().Length - 3);
                    _rclTypes.Add(displayRunTypeName, runType);
                }
             }
      }
        
  

Выпадающий список ComboBox заполняется правильно, но свойство RclTypeSelected не заполняется правильным объектом и всегда имеет значение null. Почему и как я могу это исправить?

Ответ №1:

SelectedValuePath предназначен для использования в сочетании с SelectedValue , а не SelectedItem :

 <ComboBox ItemsSource="{Binding RclTypes}"
          DisplayMemberPath="Key"
          SelectedValuePath="Value"
          SelectedValue="{Binding RclTypeSelected}"/>