#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}"/>