亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C# > 正文

WinForm實現基于BindingSource的方法擴展

2020-01-24 02:30:30
字體:
來源:轉載
供稿:網友

本文實例展示了WinForm實現基于BindingSource的方法擴展,共享給大家供大家參考。具體方法如下:

關鍵代碼如下:

using System;using System.Collections.Generic;using System.Reflection;using System.Windows.Forms;namespace WinFormUtilHelpV2{  /// <summary>  /// 基于.NET 2.0的BindingSource工具類  /// </summary>  public static class BindingSourceToolV2  {    /// <summary>    /// 獲取Control的BindingSource    /// </summary>    /// <param name="control">Control</param>    /// <returns>BindingSource</returns>    public static BindingSource GetBindingSource(this Control control)    {      if (control != null)      {        PropertyInfo _finded = control.GetType().GetProperty("DataSource");        if (_finded != null)        {          object _dbsource = _finded.GetValue(control, null);          if (_dbsource != null && _dbsource is BindingSource)          {            return _dbsource as BindingSource;          }        }      }      return null;    }    /// <summary>    /// 從BindingSource中條件移出    /// </summary>    /// <typeparam name="T">泛型</typeparam>    /// <param name="dbSource">BindingSource</param>    /// <param name="match">委托</param>    /// <returns>條件移出個數</returns>    public static int Remove<T>(this BindingSource dbSource, Predicate<T> match) where T : class    {      int _count = 0;      if (dbSource != null)      {        for (int i = 0; i < dbSource.List.Count; i++)        {          object _cur = dbSource.List[i];          if (match((T)_cur))          {            dbSource.List.Remove(_cur);            _count++;            i--;          }        }      }      return _count;    }    /// <summary>    /// 從BindingSource中條件查找    /// </summary>    /// <typeparam name="T">泛型</typeparam>    /// <param name="dbSource">BindingSource</param>    /// <param name="match">委托</param>    /// <returns>沒有查找到則返回NULL</returns>    public static T Find<T>(this BindingSource dbSource, Predicate<T> match) where T : class    {      T _finded = null;      if (dbSource != null)      {        foreach (T t in dbSource.List)        {          if (match(t))          {            _finded = t;            break;          }        }      }      return _finded;    }    /// <summary>    /// 從BindingSource中條件查找集合    /// </summary>    /// <typeparam name="T">泛型</typeparam>    /// <param name="dbSource">BindingSource</param>    /// <param name="match">委托</param>    /// <returns>沒有查找到則返回NULL</returns>    public static IList<T> FindAll<T>(this BindingSource dbSource, Predicate<T> match) where T : class    {      IList<T> _findedList = null;      if (dbSource != null)      {        _findedList = new List<T>();        foreach (T t in dbSource.List)        {          if (match(t))          {            _findedList.Add(t);          }        }      }      return _findedList;    }  }}

測試代碼如下:

using System;using System.Collections.Generic;using System.Windows.Forms;using WinFormUtilHelpV2;using WinFormUtilHelpV2Test.Models;namespace WinFormUtilHelpV2Test{  public partial class WinBindingSourceToolV2Test : Form  {    public WinBindingSourceToolV2Test()    {      InitializeComponent();    }    private void WinBindingSourceToolV2Test_Load(object sender, EventArgs e)    {      IList<Person> _source = new List<Person>();      for (int i = 0; i < 10; i++)      {        Person _entity = new Person();        _entity.Age = i;        _entity.Name = "YanZhiwei" + i;        _source.Add(_entity);      }      dataGridView1.SetBindingSource(_source);    }    private void button1_Click(object sender, EventArgs e)    {      Person _person = dataGridView1.GetBindingSource().Find<Person>(c => c.Age == 5);      MessageBox.Show("條件查找:" + _person != null ? "查找到一個." : "未查找到.");    }    private void button2_Click(object sender, EventArgs e)    {      int _count = dataGridView1.GetBindingSource().Remove<Person>(c => c.Age >= 5);      MessageBox.Show("成功移出:" + _count);    }    private void button3_Click(object sender, EventArgs e)    {      IList<Person> _personList = dataGridView1.GetBindingSource().FindAll<Person>(c => c.Age < 5);      MessageBox.Show("條件查找:" + _personList != null ? "查找到" + _personList.Count + "個" : "未查找到.");    }  }}    /// <summary>    /// DataGridView SetBindingSource    /// </summary>    /// <typeparam name="T">IList</typeparam>    /// <param name="dataGrid">dataGrid</param>    /// <param name="source">泛型</param>    public static void SetBindingSource<T>(this DataGridView dataGrid, IList<T> source)    {      BindingList<T> _bindinglist = new BindingList<T>(source);      BindingSource _source = new BindingSource(_bindinglist, null);      dataGrid.DataSource = _source;    }

測試結果如下圖所示:

希望本文所述實例對大家C#程序設計能有所幫助!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲国产成人一区| 日韩午夜在线视频| 中文字幕久精品免费视频| 成人免费观看网址| 亚洲国产成人在线视频| 丝袜亚洲另类欧美重口| 亚洲人成电影在线播放| 欧洲亚洲女同hd| 亚洲最大激情中文字幕| 91视频-88av| 精品久久久久久久久久久久久久| 国产精品久久999| 欧美有码在线观看视频| 精品高清一区二区三区| 国产日韩欧美在线播放| 欧美在线www| 在线观看欧美成人| 国产一区二区黄| 亚洲激情在线观看视频免费| 欧美精品久久久久久久久| 国产一区二区三区直播精品电影| 亚洲国产高清高潮精品美女| 欧美日韩成人在线观看| 亚洲午夜未满十八勿入免费观看全集| 亚洲第一中文字幕| 国产欧美精品一区二区三区-老狼| 欧美激情视频在线免费观看 欧美视频免费一| 精品亚洲永久免费精品| 欧美午夜视频一区二区| 亚洲专区国产精品| 国产午夜精品视频免费不卡69堂| 国产丝袜精品视频| 久久国产精品电影| 欧美影院在线播放| 中文字幕av一区二区| 国产精品久久久久久久久久ktv| 超碰精品一区二区三区乱码| 欧美日韩一区二区在线播放| 亚洲女人被黑人巨大进入| 亚洲人成电影在线| 欧美在线视频网| 欧美精品激情blacked18| 91精品国产亚洲| 国产精品久久久久久久久久久久| 最新的欧美黄色| 91丨九色丨国产在线| 琪琪亚洲精品午夜在线| 欧美精品激情在线观看| 亚洲电影天堂av| 国产精品视频资源| 日韩欧美中文字幕在线播放| 欧美激情一区二区三区在线视频观看| 色噜噜狠狠狠综合曰曰曰| 一区二区三区视频免费在线观看| 日韩精品在线观| 午夜精品久久久久久久99热浪潮| 97超级碰碰碰久久久| 91av在线精品| 538国产精品一区二区免费视频| 国产丝袜一区视频在线观看| 精品一区二区亚洲| 亚洲美女视频网| 日本韩国欧美精品大片卡二| 68精品久久久久久欧美| 国产成人av在线| 日韩美女主播视频| 久久精品中文字幕免费mv| 国产自产女人91一区在线观看| 欧美成人免费全部观看天天性色| 91av网站在线播放| 97福利一区二区| 久久91亚洲人成电影网站| 91日韩在线播放| 日韩电影第一页| 日韩成人在线观看| 亚洲国内精品在线| 在线观看国产精品日韩av| 91精品国产综合久久男男| 51精品在线观看| 亚洲美女精品久久| 91超碰中文字幕久久精品| 国产欧美在线视频| 久久中国妇女中文字幕| 欧美国产日韩精品| 久久精品夜夜夜夜夜久久| 国产亚洲欧美另类中文| 欧美高清视频一区二区| 欧美高清自拍一区| 欧美日韩国产成人高清视频| 91色精品视频在线| 伊人青青综合网站| 国产噜噜噜噜噜久久久久久久久| 国产亚洲一区二区精品| 久久免费成人精品视频| 国产精品久久国产精品99gif| 美女av一区二区三区| 国产一区二区三区在线观看网站| 欧美大奶子在线| 亚洲午夜精品视频| 久久精品国产亚洲| 亚洲最大av网| 亚洲jizzjizz日本少妇| 日韩欧美亚洲成人| 欧美成人一二三| 97不卡在线视频| 亚洲欧美中文在线视频| 欧美激情在线播放| 亚洲欧美国产精品va在线观看| 久久精品国产一区二区电影| 国产成人一区三区| 亚洲欧美精品中文字幕在线| 欧美日韩亚洲天堂| 亚洲国产欧美一区二区三区同亚洲| 精品国产欧美一区二区三区成人| 亚洲第一精品自拍| 欧美激情一区二区三区在线视频观看| 亚洲欧美日韩中文视频| 久久久免费精品视频| 国产裸体写真av一区二区| 国产精品久久久久av| 美女视频黄免费的亚洲男人天堂| **欧美日韩vr在线| www.日韩.com| 成人福利免费观看| 中文日韩电影网站| 91丨九色丨国产在线| 日韩中文视频免费在线观看| 精品中文字幕在线2019| 国产午夜精品一区二区三区| 中文字幕综合一区| 日韩最新在线视频| 亚洲电影免费观看高清完整版在线| 清纯唯美亚洲激情| 亚洲精品视频播放| 国产成人精品久久二区二区| 日韩一区二区三区在线播放| 热久久这里只有| 欧美福利视频在线观看| 日韩电影中文字幕在线| 国产99久久精品一区二区 夜夜躁日日躁| 亚洲加勒比久久88色综合| 日韩精品中文字| 日本精品视频在线观看| 国产欧美精品日韩精品| 国产精品视频自在线| 亚洲最大的网站| 国产成人在线一区| 国产成人精品在线播放| 欧美日韩亚洲国产一区| 国产精品99蜜臀久久不卡二区| 亚洲欧美国产一本综合首页| 91精品久久久久久久久久入口| 日韩免费中文字幕| 91精品国产91久久久久久最新| 永久免费毛片在线播放不卡| 精品日韩中文字幕| 欧美小视频在线观看| 亚洲第一在线视频| 2019日本中文字幕| 成人免费网站在线| 欧美激情国产高清| 成人妇女淫片aaaa视频| 亚洲欧美国产va在线影院| 欧美精品免费播放|