По какой-то причине, когда я связываю ComboBox со списком POCO, свойство, привязанное к SelectedValue, устанавливается дважды:
- Со значением = POCO.ToString ()
- Со значением = POCO.Key свойство, , которое является предполагаемым поведением
У меня есть следующий ComboBox, который привязан к свойствам в моей ViewModel:
<ComboBox ItemsSource="{Binding Path=AllowedClassifications}"
DisplayMemberPath="Value"
SelectedValue="{Binding Path=TargetGroup.Classification}"
SelectedValuePath="Key" />
Свойства в ViewModel определены как:
//ICollection is implemented by ObservableCollection<T>
//DataBaseFieldValue has two public properties: string Key, string Value
public ICollection<DatabaseFieldValue> AllowedClassifications
{
get { return _allowedClassifications; }
private set { _allowedClassifications = value; }
}
public Model.TargetGroup TargetGroup
{
get { return _targetGroup; }
private set { _targetGroup = value; OnPropertyChanged("TargetGroup"); }
}
TargetGroup.Classification определяется как:
public string Classification
{
get { return _classification; }
set
{
System.Diagnostics.Debug.WriteLine("Classification: " + value);
_classification = value;
OnPropertyChanged("Classification");
}
}
Отладочный вывод:
Классификация:
MyNamespace.DatabaseFieldValue
Классификация: 2
Что здесь происходит? Я делаю это совершенно неправильно?