DevExpress的GridControl控件绑定动态数据时列排序问题解决

本文介绍了在DevExpress的GridControl控件中,如何解决在绑定动态数据时列排序问题。当类B继承自基类A,并将其实例绑定到GridControl,属性显示顺序不理想。为实现期望的B1, A1, B2, A2顺序,通过定义XML文件来指定列排序,然后在代码中读取XML并应用到GridControl,从而达到自定义排序的目的。" 8585830,1360206,Mondrian错误解析:MDX对象找不到解决方案,"['BI', 'mondrian']
摘要由CSDN通过智能技术生成
GridControl是一个表格组件,可以格式化显示结构数据。其基本使用方法如下:
<dxg:GridControl x:Name="grid"    CustomUnboundColumnData="grid_CustomUnboundColumnData">
<dxg:GridControl.Columns>
<dxg:GridColumn FieldName="Number1" />
<dxg:GridColumn FieldName="Number2" />
<dxg:GridColumn FieldName="Text1" />
<dxg:GridColumn FieldName="Text2" />
</dxg:GridControl.Columns>
<dxg:GridControl.View>
<dxg:TableView x:Name="view" AutoWidth="True" CellValueChanged="view_CellValueChanged" />
</dxg:GridControl.View>
</dxg:GridControl>

在上述例子中,GridControl的列在xaml文件里已经设定,顺序是排好的。当GridControl的控件在cs文件定义,通过binding进行绑定的时候,序列就会按照对象属性定义的先后进行排列了。这就带来一个问题。比如基类A定义了两个属性A1和A2,继承基类A的类B定义了两个属性B1和B2。当我们将B的实例绑定到视图中的GridControl时,显示的顺序是A1,A2,B1,B2。而我们希望的顺序是B1,A1,B2,A2,这个问题怎么处理呢?
问题解决主要包含以下步骤:
1)定义两个类:A和B
2)将类B的实例与GridControl绑定
3)定义GridControl列排序xml文件
4)读取上述xml文件,将该排序定义绑定到GridControl
具体过程:
1)定义两个类:A和B
namespace com.test{
  
public class A
{
public string A1{get;set;}
public string A2{get;set;}
}
}
namespace com.test{
public class B:A
{
public string B1{get;set;}
public string B2{get;set;}
}
}

2)将类B的实例与GridControl绑定
viewmodel(Bviewmodel.cs)如下:
namespace com.test{
  
public class Bviewmodel: INotifyPropertyChanged
{
//应该在构造函数为该集合赋一些测试数据
private ObservableCollection<B> b_vm= new ObservableCollection<B>();
}
public ObservableCollection<B> B_vm
{
get { return this.b_vm; }
set { this.b_vm= value; }
}
public event PropertyChangedEventHandler PropertyChanged;

protected void OnPropertyChanged(string propertyname)
{
PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
if (propertyChanged != null)
{
propertyChanged(this, new PropertyChangedEventArgs(propertyname));
}
}
}

xaml(BModel.xaml)文件定义如下:
<UserControl x:Class="com.test.BModel"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:com.test"
xmlns:dxg="http://schema
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值