【发布时间】:2015-01-19 14:29:11
【问题描述】:
我有一个数据网格,以 ComboBox 作为列。我能够加载 DataGrid 并在组合框中获取正确的值,但由于某种原因,每次我单击并更新组合框的值时,都会出现一个红框,并且整个 Datagrid 冻结,不允许我进行任何进一步的更新。
我没有具体的验证错误。
这是一个示例代码
<DataGrid x:Name="dgvFactor" Margin="3" AutoGenerateColumns="False" CanUserAddRows="True" SelectionMode="Single" >
<DataGrid.Columns>
<DataGridComboBoxColumn x:Name="cbxfactor" SelectedValueBinding="{Binding id_measure}" Header="Medida de Conversion" Width="200"/>
<DataGridTextColumn Binding="{Binding factor}" Header="Valor" Width="100"/>
</DataGrid.Columns>
</DataGrid>
后面的代码是这样的
cbxfactor.SelectedValuePath = "id"
cbxfactor.DisplayMemberPath = "measure"
cbxfactor.ItemsSource = appVM.MeasurementList
再一次,一切都很好,但是当我开始编辑时,我遇到了问题!
提前致谢
我发现了这个错误...
System.Windows.Data Error: 7 : ConvertBack cannot convert value '2' (type 'Int32'). BindingExpression:Path=id_price_list; DataItem='DataRowView' (HashCode=66577575); target element is 'ComboBox' (Name=''); target property is 'SelectedValue' (type 'Object') NotSupportedException:'System.NotSupportedException: No se puede convertir ByteConverter desde System.Int32.
【问题讨论】:
-
请提供
appVM.MeasurementList后面对象的接口 -
它是一个基本的 DataTable,其 DefaultView 被暴露为 MeasurementList (dataview)。
-
是的,但我猜您的问题的原因在于该数据表的实现。可能写作失败了。也许对已编辑字段的引用是问题所在。
-
这是我得到的错误...System.Windows.Data 错误:7:ConvertBack 无法转换值“2”(类型“Int32”)。绑定表达式:路径=id_price_list; DataItem='DataRowView' (HashCode=66577575);目标元素是 'ComboBox' (Name='');目标属性是'SelectedValue'(类型'Object') NotSupportedException:'System.NotSupportedException: No se puede convertir ByteConverter desde System.Int32.
标签: .net wpf data-binding