我有一个包含以下类实例的列表:
namespace Foo.InformationModel.Reference
{
public class ReferenceCodeTypeChar
{
public ReferenceCodeTypeChar();
public string Category { get; set; }
public string CodeValue { get; set; }
public string Description { get; set; }
public string Value { get; set; }
}
}
以下是用作组合框所在窗口的DataContext
及其相关属性的对象:
public class MyObject
{
public List<Foo.InformationModel.Reference.ReferenceCodeTypeChar> ProgramTypes() {...}
private string _selectedProgramTypeCode;
public string SelectedProgramTypeCode
{
get
{
return _selectedProgramTypeCode;
}
set
{
if (_selectedProgramTypeCode != value)
{
_selectedProgramTypeCode = value;
OnPropertyChanged("SelectedProgramTypeCode");
}
}
}
}
这是组合框背后的xaml代码:
<ComboBox ItemsSource="{Binding Path=ProgramTypes}"
SelectedItem="{Binding Path=SelectedProgramTypeCode, Mode=TwoWay}"
DisplayMemberPath="Description"
SelectedValuePath="Value"/>
问题发生在SelectedProgramTypeCode中。 &#34;值&#34;的值变量是Foo.InformationModel.Reference.ReferenceCodeTypeChar而不是ReferenceCodeTypeChar对象的Value属性的预期字符串。有什么问题?
答案 0 :(得分:2)
您必须将SelectedItem
或 SelectedValuePath
与SelectedValue
结合使用。
请参阅此回答Difference between SelectedItem, SelectedValue and SelectedValuePath
答案 1 :(得分:-1)
您应该在XAML中使用SelectedValue
而不是SelectedItem
。
<ComboBox
ItemsSource="{Binding Path=ProgramTypes}"
SelectedValue="{Binding Path=SelectedProgramTypeCode, Mode=TwoWay}"
DisplayMemberPath="Description"
SelectedValuePath="Value" />