DXgrid for wpf简单示例.docx_第1页
DXgrid for wpf简单示例.docx_第2页
DXgrid for wpf简单示例.docx_第3页
DXgrid for wpf简单示例.docx_第4页
DXgrid for wpf简单示例.docx_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;using DevExpress.XtraEditors;using DevExpress.XtraGrid.Columns;using DevExpress.XtraGrid.Views.Base;using DevExpress.XtraGrid.Views.BandedGrid;using DevExpress.XtraEditors.Repository;namespace XtraGridDemo1 public partial class XtraForm1 : DevExpress.XtraEditors.XtraForm public XtraForm1() InitializeComponent(); /首先拖到窗体上一个GridControl,在表格上点击“Click here to change view”链接,在弹出菜单中选择“convert to”-“AdvBandedGridView”。 InitGrid(); private void XtraForm1_Load(object sender, EventArgs e) /初始化表格 private void InitGrid() / advBandedGridView1是表格上的默认视图,注意这里声明的是:BandedGridView BandedGridView view = advBandedGridView1 as BandedGridView; view.BeginUpdate(); /开始视图的编辑,防止触发其他事件 view.BeginDataUpdate(); /开始数据的编辑 view.Bands.Clear(); /修改附加选项 view.OptionsView.ShowColumnHeaders = false; /因为有Band列了,所以把ColumnHeader隐藏 view.OptionsView.ShowGroupPanel = false; /如果没必要分组,就把它去掉 view.OptionsView.EnableAppearanceEvenRow = false; /是否启用偶数行外观 view.OptionsView.EnableAppearanceOddRow = true; /是否启用奇数行外观 view.OptionsView.ShowFilterPanelMode = ShowFilterPanelMode.Never; /是否显示过滤面板 view.OptionsCustomization.AllowColumnMoving = false; /是否允许移动列 view.OptionsCustomization.AllowColumnResizing = false; /是否允许调整列宽 view.OptionsCustomization.AllowGroup = false; /是否允许分组 view.OptionsCustomization.AllowFilter = false; /是否允许过滤 view.OptionsCustomization.AllowSort = true; /是否允许排序 view.OptionsSelection.EnableAppearanceFocusedCell = true; /? view.OptionsBehavior.Editable = false; /是否允许用户编辑单元格 /添加列标题 GridBand bandID = view.Bands.AddBand(ID); bandID.Visible = false; /隐藏ID列 GridBand bandName = view.Bands.AddBand(姓名); GridBand bandSex = view.Bands.AddBand(性别); GridBand bandBirth = view.Bands.AddBand(出生日期); GridBand bandScore = view.Bands.AddBand(分数); GridBand bandMath = bandScore.Children.AddBand(数学); GridBand bandChinese = bandScore.Children.AddBand(语文); GridBand bandEnglish = bandScore.Children.AddBand(英语); GridBand bandSubTotal = bandScore.Children.AddBand(小计); GridBand bandRemark = view.Bands.AddBand(备注); /列标题对齐方式 bandName.AppearanceHeader.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center; bandSex.AppearanceHeader.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center; bandBirth.AppearanceHeader.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center; bandScore.AppearanceHeader.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center; bandMath.AppearanceHeader.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center; bandChinese.AppearanceHeader.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center; bandEnglish.AppearanceHeader.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center; bandSubTotal.AppearanceHeader.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center; bandRemark.AppearanceHeader.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center; /模拟几个数据 List listDataSource = new List(); listDataSource.Add(new Record(1, 张三, 男, Convert.ToDateTime(1989-5-6), 115.5f, 101, 96, ); listDataSource.Add(new Record(2, 李四, 女, Convert.ToDateTime(1987-12-23), 92, 85, 87, ); listDataSource.Add(new Record(3, 王五, 女, Convert.ToDateTime(1990-2-11), 88, 69, 41.5f, ); listDataSource.Add(new Record(4, 赵六, 男, Convert.ToDateTime(1988-9-1), 119, 108, 110, 备注行); /绑定数据源并显示 gridControl1.DataSource = listDataSource; gridControl1.MainView.PopulateColumns(); /小计这一列因为没绑定数据源,所以需要手动添加 /(有点复杂,慢慢看吧) string fieldNames = new string SubTotal ; GridColumn column; /声明单列 column = view.Columns.AddField(fieldNames0); /添加一个数据字段 column.VisibleIndex = view.Columns.Count - 1; /设置该列在编辑视图时的显示位置(倒数第二列) column.UnboundType = DevExpress.Data.UnboundColumnType.Decimal; column.OptionsColumn.AllowEdit = false; /此列不可编辑 column.Visible = true; view.Columns.Add(column); /视图中添加一列 /绑定事件,当分数改变时小计也跟着变 /(好像只有在绑定事件里才能改变该单元格数值,直接修改无效) view.CustomUnboundColumnData += new DevExpress.XtraGrid.Views.Base.CustomColumnDataEventHandler(advBandedGridView1_CustomUnboundColumnData); /性别列绑定ComboBox RepositoryItemComboBox riCombo = new RepositoryItemComboBox(); riCombo.Items.AddRange(new string 男, 女 ); gridControl1.RepositoryItems.Add(riCombo); view.ColumnsSex.ColumnEdit = riCombo; /出生年月列绑定Date RepositoryItemDateEdit riDate = new RepositoryItemDateEdit(); gridControl1.RepositoryItems.Add(riDate); view.ColumnsBirth.ColumnEdit = riDate; /分数列绑定SpinEdit RepositoryItemSpinEdit riSpin = new RepositoryItemSpinEdit(); gridControl1.RepositoryItems.Add(riSpin); view.ColumnsMath.ColumnEdit = riSpin; view.ColumnsChinese.ColumnEdit = riSpin; view.ColumnsEnglish.ColumnEdit = riSpin; /备注列绑定MemoExEdit RepositoryItemMemoExEdit riMemoEx = new RepositoryItemMemoExEdit(); gridControl1.RepositoryItems.Add(riMemoEx); view.ColumnsRemark.ColumnEdit = riMemoEx; /小计列添加汇总 view.OptionsView.ShowFooter = true; /显示表格页脚 view.ColumnsSubTotal.SummaryItem.FieldName = SubTotal; view.ColumnsSubTotal.SummaryItem.DisplayFormat = 0:f2; view.ColumnsSubTotal.SummaryItem.SummaryType = DevExpress.Data.SummaryItemType.Average; /将标题列和数据列对应 view.ColumnsID.OwnerBand = bandID; view.ColumnsName.OwnerBand = bandName; view.ColumnsSex.OwnerBand = bandSex; view.ColumnsBirth.OwnerBand = bandBirth; view.ColumnsMath.OwnerBand = bandMath; view.ColumnsChinese.OwnerBand = bandChinese; view.ColumnsEnglish.OwnerBand = bandEnglish; view.ColumnsSubTotal.OwnerBand = bandSubTotal; view.ColumnsRemark.OwnerBand = bandRemark; view.EndDataUpdate();/结束数据的编辑 view.EndUpdate(); /结束视图的编辑 / 计算小计 private float calcSubTotal(float math, float chinese, float english) return math + chinese + english; private void advBandedGridView1_CustomUnboundColumnData(object sender, CustomColumnDataEventArgs e) ColumnView colView = sender as ColumnView; if (e.Column.FieldName = SubTotal & e.IsGetData) e.Value = calcSubTotal( Convert.ToSingle(colView.GetRowCellValue(e.RowHandle, colView.ColumnsMath), Convert.ToSingle(colView.GetRowCellValue(e.RowHandle, colView.ColumnsChinese), Convert.ToSingle(colView.GetRowCellValue(e.RowHandle, colView.ColumnsEnglish); #region 运行时绑定到实现Ilist接口的数据源 public class Record int id; DateTime birth; string name, sex, remark; float math, chinese, english; public Record(int id, strin

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论