牛人莫入 Silverlight 4 DataGrid Before add Number

本文介绍了一种在MIS管理系统中使用DataGrid控件快速添加数据列表序号及全选功能的方法,通过自定义模板和属性设置实现。同时提供了编写Model类进行数据绑定的示例,并讨论了如何在加载行时动态添加序号。文章旨在为开发者提供实用的技巧,以提升系统交互性和用户体验。

最近在做MIS管理系统中,对于数据列表展示前面要加上一个序号,全选等功能(本篇文章只解决在DataGrid前加序号问题);从网上也看到有

朋友对这方面的功能做了一些讲解,其功能都是一样,也没有什么好说;关键在于创新,今天发现还有另外一种方法给可以做,可能这就是一种开发

方面的技巧吧,在此特与大家一起分享。希望对大家在以后的工作中有所帮助。

创建工程等一些基本的工作就略过吧。直接看具体是怎么解决问题的;(本工程是在W7 Theme下做的DEMO)

新建一个Page页面,并在面页中添加一个DataGrid Control,如下图所示:

image

选择DataGrid 右键编辑当前模板:

image

这时,我们可以在Object and Tiem 窗口中看到当前DataGrid 模板中所有的控件对象,如下图所示:

image

大家想了解DataGrid 构成,可能更详细的去了解它是如何构成的,在这里就不详细说明;

接下来,选择”TopLeftConterHeader”这个模板,并对他的模板进行修改,如下图所示:

image

image

在它的模板中添加一个TextBlock,它的text设置为序号,并能它的Layout做一些设置(根据项目须要做设置);

做到这一步大体上的工作就差不多完了;

接下把Datagrid 中的一个属性修改一下,就可以了,如下图所示:

image

把HeadersVisibility= All就可以了;

 

现在我们来编写一个Model给DataGird提供数据显示:

namespace SLW7Theme.Model
{
    public class Student
    {
        public string Name { get; set; }
        public int Age { get; set; }
        public string Address { get; set; }
    }
}

 

 

DataGrid 数据绑定:

  private void GetStudentList()
        {
            var studnet = new List<Model.Student>();
            studnet.Add(new Model.Student() { Name = "caodaiming", Address = "sicuan", Age = 24 });
            studnet.Add(new Model.Student() { Name = "caodaiming", Address = "sicuan", Age = 24 });
            studnet.Add(new Model.Student() { Name = "caodaiming", Address = "sicuan", Age = 24 });
            studnet.Add(new Model.Student() { Name = "caodaiming", Address = "sicuan", Age = 24 });
            studnet.Add(new Model.Student() { Name = "caodaiming", Address = "sicuan", Age = 24 });
            studnet.Add(new Model.Student() { Name = "caodaiming", Address = "sicuan", Age = 24 });
            studnet.Add(new Model.Student() { Name = "caodaiming", Address = "sicuan", Age = 24 });
            studnet.Add(new Model.Student() { Name = "caodaiming", Address = "sicuan", Age = 24 });
            dg.ItemsSource = studnet;
        } 

 

在DataGird 添加LoadingRow事件,在加行时,用行的索引作为序号;

 public DataGrid()
        {
            InitializeComponent();
            GetStudentList();
            dg.LoadingRow += new EventHandler<DataGridRowEventArgs>(dg_LoadingRow);
        }

        void dg_LoadingRow(object sender, DataGridRowEventArgs e)
        {
            e.Row.Header = e.Row.GetIndex() + 1;
        }

如果在这里加上了分页,但是这里不很对分页后的数据加累加起来;如果要实现提供给大家一种方法,可以用PageSize,pageIndex来做一些工作,

在这里不做解决;

写到最后我发现了一个问题,如果你在整个项目中所有的DataGrid 都是一个模式的,可以修改DataGrid的当前模板;这样就是对它本身进行了改造,

以后在从工具中拉出它,就是你修改后的控件;(修改它的拷贝模板也是可以解决这个问题,这样在项目中有一个DataGrid 的Style);

本人的能力有限,如有不正确的地方欢迎大家指正;一起学习,共同进步。

结束了。

乐播投屏是一款简单好用、功能强大的专业投屏软件,支持手机投屏电视、手机投电脑、电脑投电视等多种投屏方式。 多端兼容与跨网投屏:支持手机、平板、电脑等多种设备之间的自由组合投屏,且无需连接 WiFi,通过跨屏技术打破网络限制,扫一扫即可投屏。 广泛的应用支持:支持 10000+APP 投屏,包括综合视频、网盘与浏览器、美韩剧、斗鱼、虎牙等直播平台,还能将央视、湖南卫视等各大卫视的直播内容一键投屏。 高清流畅投屏体验:腾讯独家智能音画调校技术,支持 4K 高清画质、240Hz 超高帧率,低延迟不卡顿,能为用户提供更高清、流畅的视觉享受。 会议办公功能强大:拥有全球唯一的 “超级投屏空间”,扫码即投,无需安装。支持多人共享投屏、远程协作批注,PPT、Excel、视频等文件都能流畅展示,还具备企业级安全加密,保障会议资料不泄露。 多人互动功能:支持多人投屏,邀请好友加入投屏互动,远程也可加入。同时具备一屏多显、语音互动功能,支持多人连麦,实时语音交流。 文件支持全面:支持 PPT、PDF、Word、Excel 等办公文件,以及视频、图片等多种类型文件的投屏,还支持网盘直投,无需下载和转格式。 特色功能丰富:投屏时可同步录制投屏画面,部分版本还支持通过触控屏或电视端外接鼠标反控电脑,以及在投屏过程中用画笔实时标注等功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值