【.Net码农】DataGrid 数据绑定使用小结一

  做过ASP.NET开发的朋友都知道,ASP.NET提供了强大的列表数据控件,从ASP.NET1.1

时代的DataGrid,到ASP.NET2.0时代的GridView,再到ASP.NET3.5时代的ListView,功能越

来越强大,使用起来也非常的灵活.在Silverlight2中,同样提供了一个类似的数据列表控件

DataGrid,虽然silverlight是WPF的一个子集,但是在WPF却没有提供DataGridR控件.

  DataGrid控件提供了一个非常灵活的方式来进行表格数据的显示,内置的表类型有文本框列

,复选框列和模板列,内置支持排序,锁定列功能,以及内置支持下拉显示一条记录详细信息的功能.

  使用方式一,自动生成列

首先定义一个数据对象,设置DataGrid的AutoGenerateColumns属性为True,以便让DataGrid可以自动生成列,这样绑定的数据可以自动实现编辑功能,它会自动选用DataGridCheckBoxColumn和DataGridTextColumn.在你的数据对象中设置字段属性是否为可写可读意味着该列是否可编辑.

数据对象BookClass:

View Code
复制代码
public class BookClass
    {
        public string Title { get; set; }//自动使用DataGridTextColumn模板
        public string Author { get; set; }//自动使用DataGridTextColumn模板
        public DateTime Time { get{return DateTime.Now;}}//不可修改,只读
        public bool IsCheck { get; set; }//自动使用DataGridCheckBoxColumn模板

        /// <summary>
        /// 实例化
        /// </summary>
        /// <param name="title">书名</param>
        /// <param name="author">作者</param>
        /// <param name="ischeck">是否选择</param>
        public BookClass(string title, string author,bool ischeck)
        {
            Title = title;
            Author = author;
            IsCheck = ischeck;
        }
    }
复制代码

数据绑定控件DataGridBook:为方便检测是否更改数据对象,添加一个Button按钮

View Code
复制代码
<UserControl xmlns:data="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Data"  x:Class="DataGridTest.Control.DataGridBook"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Width="400" Height="150">
    <Grid x:Name="LayoutRoot" Background="White">
        <data:DataGrid Name="gridAutoGenerateColumns" AutoGenerateColumns="True">
        </data:DataGrid>
        <Button Name="btnTest" Content="检测" Click="Button_Click" Width="60" Height="24" VerticalAlignment="Bottom" />
    </Grid>
</UserControl>
复制代码

后台cs代码为:

View Code
复制代码
/// <summary>
    /// 数据列自动生成
    /// </summary>
    public partial class DataGridBook : UserControl
    {
        public DataGridBook()
        {
            InitializeComponent();
            DataBinding();
        }

        public void DataBinding()
        {
            List<BookClass> list = new List<BookClass>() { new BookClass("射雕英雄传", "金庸", true), new BookClass("坏蛋是怎样炼成的", "六道", false) };
            gridAutoGenerateColumns.ItemsSource = list;
        }

        /// <summary>
        /// 检测
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void Button_Click(object sender, RoutedEventArgs e)
        {
            if (gridAutoGenerateColumns.SelectedIndex == -1)
                return;
            BookClass book = gridAutoGenerateColumns.SelectedItem as BookClass;
            MessageBox.Show(book.Title + "," + book.Author + "," + book.Time + "," + book.IsCheck.ToString());
        }
    }
复制代码

运行页面如图所示

现在我们在dataGrid中修改一下数据,检查是否改变了数据对象,在修改值内容后我们点击检测如图所示

发现除了Time属性为可读不可修改,均改变了数据对象

DataGrid其他属性:

CanUserReorderColumns:是否可以拖动列

CanUserResizeColumns:是否可以设置列宽

CanUserSortColumns:是否可以对列排序

   

  使用方式二 自定义列

 

分类: 项目积累
标签: DataGrid
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值