2024年终活动

DevExpress控件使用交流,DevExpress中国社区Dev联系电话 联系电话:023-68661681

为什么DevExpress GridControl在水平滚动后的数据丢失

来源:本站原创   发布时间:2012-05-15   浏览:2725次

问题修改前的示例: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();
}
}

在这种情况下,需要使用

[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
扫码咨询
电话咨询
023-68661681
返回
顶部