首页
/
每日頭條
/
科技
/
datatable動态修改列值
datatable動态修改列值
更新时间:2024-11-10 22:05:29

datatable動态修改列值?接上一篇文章C#控件美化之路(9):美化控件ListBox,我來為大家科普一下關于datatable動态修改列值?以下内容希望對你有幫助!

datatable動态修改列值(C控件美化之路11)1

datatable動态修改列值

接上一篇文章。

C#控件美化之路(9):美化控件ListBox

主要是功能拓展。一個ListBox 添加數據時候往往都是循環添加

往往在開發中 查詢數據庫中的内容,然後隻需要展示一列數據。一般使用listBox比較多,這篇文章就是将一個DataTable 綁定數據再封裝一次。

封裝完成後,僅需要一行代碼即可完成數據綁定。是不是很方便。在開發中也能事半功倍。

DataTable dt = new DataTable(); dt.Columns.Add("ID"); dt.Columns.Add("Text"); dt.Columns.Add("Text1"); for (int i = 0; i < 50; i ) { dt.Rows.Add(i, "TEST" i); } wenListBox1.DataSource = dt;

綁定數據 首先讓當前需要綁定數據類型

本文主要講解綁定DataTable ,在實際開發中DataTable使用是相對比較多。

既然綁定DataTable 就要讓在綁定中知道綁定是哪一列數據。這個需要預先配置。

可以增加一個共有屬性

[Category("WenData"), Description("綁定數據列"), DefaultValue(null)] public string ColumnName { get; set; }

在之後綁定數據,就直接獲取DataTable中指定屬性列數據。

增加綁定數據接收類,并且接受到數據後綁定處理。

private object dataSource { get; set; } [Browsable(false)] public object DataSource { get => dataSource; set { if (value != null) { dataSource = value; DataBind(); } } }

綁定數據要檢查用戶賦值的數據是否為空,若為空,不處理。

實現方法

貼完整代碼塊

private void DataBind() { if (dataSource == null) return; this.Items.Clear(); IList lists = null; if (dataSource is DataSet ds) { lists = ((IListSource)ds.Tables[0]).GetList(); } else if (dataSource is IListSource listSource) { lists = listSource.GetList(); } else if (dataSource is IList ilist) { lists = ilist; } //綁定數據 foreach (var ilist in lists) { if (ilist is DataRowView row) { Items.Add(row[ColumnName]); } else { List<System.Reflection.PropertyInfo> propertyInfos = new List<System.Reflection.PropertyInfo>(ilist.GetType().GetProperties()); string value = propertyInfos.Find(a => a.Name.ToUpper() == ColumnName.ToUpper())?.GetValue(ilist, null)?.ToString(); Items.Add(value); } } }

拓展數據屬性,增加了List數據綁定。

本文主要演示如何綁定使用數據,當然在實際使用中避免多次if檢查,應該在檢查類型後,直接用一個獨立方法執行循環,避免多次檢查浪費資源,小夥伴可以自己按照需求更改一下即可。

關注文林軟控,帶你一起用C#美化封裝控件。

Comments
Welcome to tft每日頭條 comments! Please keep conversations courteous and on-topic. To fosterproductive and respectful conversations, you may see comments from our Community Managers.
Sign up to post
Sort by
Show More Comments
推荐阅读
怎樣删除自帶應用
怎樣删除自帶應用
1、首先找到手機上的“應用商店”,然後點擊一下。2、然後在“應用商店”裡,點擊右下角的“我”選項,然...
2024-11-10
校園網免認證教程
校園網免認證教程
1、打開WiFi連接需要網頁認證的WiFi(校園網)ps:并不是所有的WiFi都可以。請自行測試。2...
2024-11-10
安卓手機怎麼當U盤用
安卓手機怎麼當U盤用
1、我們将手機和電腦連接後,打開電腦會發現多出CD驅動盤,但并不能存儲數據。2、我們打開手機,在手機的屏幕最頂上有一行是通知欄,當我們用手指按住并向下拉時,會看到通知内容。如果我們現在用數據線把手機和電腦連接後,我們這樣操作時會看到通知欄中有個USB已連接”的提示。3、我們點擊打開USB存儲設備”,會有個提示,大概意思是SD卡的程序将會停止,點确定”便可。4、此時再打開電腦,會發現多出個可移動磁盤
2024-11-10
什麼是降水施工
什麼是降水施工
1、降水施工就是建築物在進行地下部分施工時,由于地下水位較高,導緻施工困難,需在施工前進行降水作業。...
2024-11-10
hsl調色什麼意思
hsl調色什麼意思
以華為MateBookX、win10為例。HSL是一種将RGB色彩模型中的點在圓柱坐标系中的表示法。HSL即色相(Hue)、飽和度(Saturation)、亮度(Lightness)。HSL的色相(H)是色彩的基本屬性,就是顔色名稱,如紅色、黃色等。色相就是由原色、間色和複色來構成的。色相是色彩的首要特征,是區别各種不同色彩的最準确的标準。HSL的飽和度(S)是色彩的鮮豔程度,也稱色彩的純度。飽和
2024-11-10
Copyright 2023-2024 - www.tftnews.com All Rights Reserved