问题修改前的示例:WpfApplication15.zip
问题解决后的示例:Q396711.zip
由于DevExpress GridControl使用了有不同特性的不同类型对象所造成的。出于这个原因,当GridControl试着读取单元格的值时,它会试着获取一个类型的属性值。由于使用了不同类型的对象,所以如果一个基础行对象不包含这个属性的话,属性值将无法获取。在这种情况下,应用程序将抛出BindingException,GridControl不能立即更新编辑器的值。
解决这个问题,可以通过使用数值转换器:
public class TypesValueConverter : IValueConverter {
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) {
DataItem dataItem = value as DataItem;
if(dataItem != null)
return dataItem.Types;
return null;
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) {
throw new NotImplementedException();
}
}
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) {
DataItem dataItem = value as DataItem;
if(dataItem != null)
return dataItem.Types;
return null;
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) {
throw new NotImplementedException();
}
}
在这种情况下,需要使用
[XAML]ItemsSource="{Binding Path=RowData.Row, Converter={StaticResource typesValueConverter}}"
与
[XAML]ItemsSource="{Binding Path=RowData.Row.Types}"
相结合。
本站文章除注明转载外,均为本站原创或翻译
欢迎任何形式的转载,但请务必注明出处,尊重他人劳动成果
转载请注明:文章转载自:DevExpress控件中文网 [https://www.devexpresscn.com/]
本文地址:https://www.devexpresscn.com/post/193.html
欢迎任何形式的转载,但请务必注明出处,尊重他人劳动成果
转载请注明:文章转载自:DevExpress控件中文网 [https://www.devexpresscn.com/]
本文地址:https://www.devexpresscn.com/post/193.html