C1FlexGrid for WPF:在行头展示行号

C1FlexGrid在行头没有显示默认的序号,本文就来介绍如何在行头显示行号。实现主要有两种方式

发布于 2016/02/16 00:00

ComponentOne Enterprise

C1FlexGrid在行头没有显示默认的序号,本文就来介绍如何在行头显示行号。

实现主要有两种方式:

第一种:使用CellFactory

首先需要展示行头,然后通过设置CellFactory实现。

代码参考:

// turn on row headers 
c1FlexGrid1.HeadersVisibility = HeadersVisibility.All; 
//add row header column 
c1FlexGrid1.RowHeaders.Columns.Add(new Column()); 
// set CellFactory 
c1FlexGrid1.CellFactory = new MyCellFactory();

 

其次,重写Cell factory。

通过Text设置序号,并且通过HorizontalAlignment和VerticalAlignment属性设置居中显示。

代码参考:

public class MyCellFactory : CellFactory 
{ 
// static fields static Thickness _thicknessEmpty = new Thickness(0); 
public override void CreateRowHeaderContent(C1FlexGrid grid, Border bdr, CellRange rng) 
{ 
// first column contains numbers 
if (rng.Column == 0) 
{ 
var tb = new TextBlock(); 
tb.HorizontalAlignment = HorizontalAlignment.Center; 
tb.VerticalAlignment = VerticalAlignment.Center; 
tb.Text = string.Format("{0}", rng.Row + 1); 
bdr.Padding = _thicknessEmpty; 
bdr.Child = tb; 
} 
} 
}

 

 

 

添加的序号如图,居中显示:

flexgrid_indicator

 

本方法详细的代码,请下载示例:

第二种方法:循环设置

通过代码循环flexgrid的每一行,然后给行头设置序号。

代码参考:

for (int i = 0; i < c1FlexGrid.Rows.Count; i++)
{ 
c1FlexGrid.RowHeaders[i, 0] = _vm.PageSize * (_vm.PageIndex - 1) + i + 1; 
}

 

 

 本文完,如果有兴趣请关注更多资源。

 

更多资源

C1FlexGrid在线英文产品文档地址:

http://helpcentral.componentone.com/nethelp/c1wpfchart/#!Documents/componentonechartforwpf.htm

如果你对C1FlexGrid感兴趣,请到我们的官网下载最新版本:/download/?pid=6

如果你有疑问,可以到GCDN论坛获得技术支持:http://gcdn.grapecity.com.cn/showforum-138.html

ComponentOne Enterprise | 下载试用

ComponentOne 是一套专注于企业 .NET开发、支持 .NET Core 平台,并完美集成于 Visual Studio 的第三方控件集,包含 300 多种 .NET开发控件,提供表格数据管理、数据可视化、报表和文档、日程安排、输入和编辑、导航和布局、系统提升工具等七大功能,被誉为“.NET开发的‘瑞士军刀’”。

ComponentOne 为您提供专业的产品咨询服务,并由技术支持工程师为您1对1解答。>> 发帖提问

相关产品
推荐相关案例
关注微信
葡萄城社区二维码

关注“葡萄城社区”

加微信获取技术资讯

加微信获取技术资讯

想了解更多信息,请联系我们, 随时掌握技术资源和产品动态