zoukankan      html  css  js  c++  java
  • C# 中DataGridView 绑定List<T>做数据源的操作问题

    若想将 List<T>作为DataGridView的数据源,然后后续还想继续操作的话,需要将List<T>赋值给BindingList对象,

    然后直接将BindingList赋值给DataGridView.DataSource, 如此直接操作BindingList对象时,DataGridView的结果会动态随之更新。

    1,绑定

    List<UserClass>  listUserClass = new List<UserClass>();
    BindingList   BList<UserClass> ;
    listUserClass = this.UserMethodInitList(); //初始化

    BList = new BindingList<UserClass>( listUserClass);//赋值给BindingList对象,Form全局变量
    this.DataGridView1.DataSource = BList; //将DataGridView里的数据源绑定成BindingList

    2, 获取当前选定的行

    //获取行对象后
    List<UserClass> modiObj = this.DataGridView1.CurrentRow.DataBoundItem as UserClass;
    

    3, 修改当前行

    复制代码
    //获取行对象后
    List<UserClass> modiObj = this.DataGridView1.CurrentRow.DataBoundItem as UserClass;
    
    modiObj .cost = 10; //修改值
    
    int  pos = this.DataGridView1.CurrentRow.Index; //记位置
    
    this.BList.RemoveAt( pos); //删除行
    
    this.BList.Insert( pos, modiObj );//添加修改后的行到指定位置, 不指定位置默认添加到最后
    复制代码

    4,删除行

    int  pos = this.DataGridView1.CurrentRow.Index; //记位置
    
    this.BList.RemoveAt( pos); //删除行,操作BindingList对象即可更新DataGridview

     5,删除多行

    复制代码
                //允许删除多行
    
                DataGridViewSelectedRowCollection rows = this.DataGridView1.SelectedRows;
    
                foreach (DataGridViewRow row in rows)
    
                {
    
                    this.BList.RemoveAt(row.Index);
    
                }
    复制代码

    6, 返向转换

    BindingList<UserClass> Blist = (BindingList<UserClass>) this.DataGridView1.DataSource;
    
    
    List<UserClass> list1 = List<UserClass>( Blist);
     
    分类: C#
  • 相关阅读:
    java垃圾回收机制
    浮点数比较/运算BigDecimal
    java8新特性_::双冒号
    java的lambda表达式
    【转】DelphiXE10.2.3——跨平台生成验证码图片
    ide fix pack for delph 10.2.3发布了
    使用ALVideoPlayerSurface制作视频播放器
    kbmMWLog同时输出日志到多个日志管理器
    kbmMWLog输出日志到控制台或指定Grid
    推荐内置android控件的开源项目alcinoe
  • 原文地址:https://www.cnblogs.com/jiangyunfeng/p/10594253.html
Copyright © 2011-2022 走看看