加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

【原创】DevExpress WPF GridControl控件用法窥探

(2013-10-21 15:02:04)
分类: C#.NET开发
最近项目做的比较烦人,也想抽出时间来写写在项目中遇到的一些问题以及学习心得。

DevExpress是一个非常好的第三方控件,使用过程中也感觉对于普通的WPF DataGrid不能满足的功能,GridControl都能满足开发者应有尽有的功能。

这里我就做以为窥探者,一起探讨这个“DataGrid”控件的使用。

我项目中需要用到下拉编辑器(ComboBoxEditor),以及时间编辑器(DateEditor),大致按括号中的称呼吧!
我们首先来看,下拉编辑器的实现,前一篇我已经用了一个示例,讲解了DataGridComboBox绑定数据的方式。我们大致知道绑定下拉框数据肯定会用到ItemsSource的。同时,如果我们使用过DevExpress Winform中的GridControl的话,我们也会知道,FileName用来绑定列的的数据的。

接着,我们看看时间编辑器,我们采用DevExpress自带的时间编辑器,我们看出绑定时间这会是很简单的事情。


好了,我就不卖关子了,我们就开始我们今天体验DevExpress GridControl的第一次旅行。

 < dxg:GridControl HorizontalAlignment="Stretch"  Name="gridControl1" VerticalAlignment="Stretch" ItemsSource="{x:Static local:MainWindow.Projects}">
            < dxg:GridControl.Columns>
                < dxg:GridColumn Name="IDCol" FieldName="ID" Header="编号" HorizontalHeaderContentAlignment="Center"/>
                < dxg:GridColumn Name="NameCol" FieldName="Name" Header="姓名" HorizontalHeaderContentAlignment="Center">
                    < dxg:GridColumn.EditSettings>
                        < dxe:ComboBoxEditSettings 
                                    IsTextEditable="False" 
                                    ValueMember="Name" 
                                    DisplayMember="Name" 
                                    ItemsSource="{x:Static local:MainWindow.Users }">
                        < /dxe:ComboBoxEditSettings>
                    < /dxg:GridColumn.EditSettings>
                < /dxg:GridColumn>
                < dxg:GridColumn Name="StartCol" FieldName="StartDateTime" Header="起始日期" HorizontalHeaderContentAlignment="Center">
                    < dxg:GridColumn.EditSettings>
                        < dxe:DateEditSettings>
                            
                        < /dxe:DateEditSettings>
                    < /dxg:GridColumn.EditSettings>
                < /dxg:GridColumn>
                < dxg:GridColumn Name="EndCol" FieldName="EndDateTime" Header="截止日期" HorizontalHeaderContentAlignment="Center">
                    < dxg:GridColumn.EditSettings>
                        < dxe:DateEditSettings>

                        < /dxe:DateEditSettings>
                    < /dxg:GridColumn.EditSettings>
                < /dxg:GridColumn>
            < /dxg:GridControl.Columns>
            < dxg:GridControl.View>
                < dxg:TableView Name="tableView1" ShowTotalSummary="True" />
            <  /dxg:GridControl.View>
        <  /dxg:GridControl>

我们从上面这个代码可以看出,绑定下拉框数据时,需要 
ValueMember="Name" 
DisplayMember="Name" 
ItemsSource="{x:Static local:MainWindow.Users
这三个属性绑定。

绑定时间编辑器时,只需要DateEditSettings就可以了,是不是很方便呐!

好了,我们再看看后台数据代码
    public partial class MainWindow : Window
    {
        public static List Projects = new List();
        public static List Users = new List();
        public MainWindow()
        {
            Users.Add(new User("陈凤伟"));
            Users.Add(new User("郝鹏飞"));
            Users.Add(new User("李栋"));
            Users.Add(new User("陈力平"));

            Projects.Add(new Project("陈凤伟", DateTime.Now, DateTime.Now,"负责人"));
            Projects.Add(new Project("陈凤伟", DateTime.Now, DateTime.Now,"参与者"));
            Projects.Add(new Project("陈凤伟", DateTime.Now, DateTime.Now, "参与者"));
            Projects.Add(new Project("陈凤伟", DateTime.Now, DateTime.Now, "参与者"));
            Projects.Add(new Project("陈凤伟", DateTime.Now, DateTime.Now, "参与者"));
            InitializeComponent();
        }

        
    }

    public class User
    {
        static int num = 0;
        public int ID { get; set; }
        public string Name { get; set; }
        public User(string name)
        {
            ID = num++;
            Name = name;
        }
    }


    public class Project
    {
        static int num = 0;
        public int ID { get; set; }
        public string Name { get; set; }
        public DateTime StartDateTime { get; set; }
        public DateTime EndDateTime { get; set; }
        public Project(string name, DateTime startDateTime, DateTime endDateTime)
        {
            ID = num++;
            Name = name;
            StartDateTime = startDateTime;
            EndDateTime = endDateTime;
        }
好了,最后不知道你是否看懂了哈,如果没有看懂请联系我
我的邮箱:liuhong1.happy@163.com

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有