【发布时间】:2015-07-11 03:42:44
【问题描述】:
在获取组合框的选定值时遇到问题。我得到的错误是,我似乎无法修复它,尝试了各种绑定、selectedvaluepath 等组合,希望有人能指出正确的方向,谢谢!
ConvertBack 无法转换值“ClientRatesWPF.Model.ChargeUnit” (类型“ChargeUnit”)。 BindingExpression:Path=SelectedChargeUnitListValueId; DataItem='ClientRatesViewModel' (HashCode=33434731);目标元素是 '组合框'(名称='cmbChargeUnit');目标属性是“SelectedValue” (类型'对象')NotSupportedException:'System.NotSupportedException: Int32Converter 无法从 ClientRatesWPF.Model.ChargeUnit 转换。
<av:ComboBox x:Name="cmbChargeUnit" HorizontalAlignment="Left" Margin="548,15,0,0" Width="187" ItemsSource="{av:Binding ChargeUnits}" DisplayMemberPath="ChargeUnitDescription" SelectedValue="{Binding SelectedChargeUnitListValueId}" VerticalAlignment="Top" Background="{av:DynamicResource {x:Static av:SystemColors.ControlDarkDarkBrushKey}}" Height="20" IsSynchronizedWithCurrentItem="True"/>
虚拟机:
public ObservableCollection<ChargeUnit> ChargeUnits
{
get { return _chargeUnitsCollection; }
set { _chargeUnitsCollection = value; }
}
public IList<ChargeUnit> ChargeUnitDescription
{
get { return _chargeUnitDescription; }
set
{
_chargeUnitDescription = value;
OnPropertyChanged("ChargeUnitDescription");
}
}
public IList<ChargeUnit> ChargeUnitListValueId
{
get { return _chargeUnitListValueId; }
set
{
_chargeUnitListValueId = value;
OnPropertyChanged("ChargeUnitListValueId");
}
}
public int SelectedChargeUnitListValueId
{
get { return _SelectedChargeUnitListValueId; }
set
{
_SelectedChargeUnitListValueId = value;
OnPropertyChanged("SelectedChargeUnitListValueId");
}
}
我在哪里填充 Observable 集合(从方法中提取的代码)
while (reader.Read())
{
_chargeUnitsCollection.Add(new ChargeUnit
{
ChargeUnitListValueId = (int)reader["ListValueId"],
ChargeUnitDescription = reader["ValueName"].ToString()
});
}
【问题讨论】: