在Datagridview控制元件利用下拉選單進行列舉資料輸入
在Datagridview控制元件利用下拉選單進行資料輸入可以使使用者操作更加方便,在配置COMBOX控制元件時,只要設定了datasource, displaymember,valuemember,即可實現comboxbox的資料輸入,如:
有一個類如下:
public class Class1
{
string _Name;
public string Name
{
get { return _Name; }
set { _Name = value; }
}
int _Weight;
public int Weight
{
get { return Weight; }
set { Weight = value; }
}
}
如果存在集合List<Class1> P1
定義一個Combobox1.DataSource= P1;
Combobox1.DisplayMember="Name";
ComboBox1.ValueMember="Weight";
這樣,在獲取Combobox1.SelectedItem時,獲取的是物件的Weight值,
而如果將combobox的datasource繫結一個列舉enmu的話,不用設定displaymember及valuemember即可通過selectedItem獲得列舉值。
對於一個列表控制元件Dgv_ClassTest,要新增DataGridViewComboBoxColumns,也可以採用同樣方法,如將下拉選單了的資料來源對應valuememeber設為Class1,則該列新增的單元格的型別也必須是Class1型別,因此我們要對原有的Class1進行一下改造:
public class Class1
{
string _Name;
public string Name
{
get { return _Name; }
set { _Name = value; }
}
int Weight;
public int Weight1
{
get { return Weight; }
set { Weight = value; }
}
public Class1 Class1
{
get
{
return This;
}
}
}
這樣在選中一項紀錄時,就可以按如下方式配置列:
CmbCol.DataSource=P1;
CmbCol.DisPlayMember=="Name";
CmbCol.ValueMember="Class1";
假設存在一個類如下:
public class Class2
{
private Class1 _C1;
public Class1 C1
{
get { return _C1; }
set { _C1 = value; }
}
private string _Name;
public string Name
{
get
{
return _Name;
}
set
{
_Name = value;
}
}
}
有一個該類的集合BindingList<Class2> P2對列表進行繫結
Dgv_ClassTest.Datasource=P2;
CmbCol.DataBoundItem="C1";
NameCol.DataBoundItem="Name";
這樣P2集合就可以通過列表控制元件進行資料的輸入輸出了。
但對於列舉,因為無法設定DisplayMember和ValueMember, 因此繫結時會報值無效的錯誤,網上國內國外的帖子的解決方法都是重寫dataerorr事件,當這是個餿主意,因為異常發生了,就得解決,丟擲去不理怎們行,況且這樣簡單拋掉,其他錯誤也會拋掉,反而不利於排錯。
我的解決方法是,將列舉重新打包成一個新的靜態類,比如,我們將KnownColor列舉包裝如下:
public class MyKnownColor
{
private KnownColor _color;
private static List<MyKnownColor> _ColorList;
public static List<MyKnownColor> ColorList
{
get
{
if (_ColorList == null)
{
_ColorList = new List<MyKnownColor>();
Array xx = Enum.GetValues(typeof(KnownColor));
MyKnownColor p = null;
foreach (KnownColor x in xx)
{
p = new MyKnownColor(x);
ColorList.Add(p);
}
}
return MyKnownColor._ColorList;
}
}
public MyKnownColor Color
{
get { return this ; }
}
private MyKnownColor(KnownColor c)
{
_color = c;
}
public string Name
{
get
{
return _color.ToString();
}
}
public KnownColor KnownColor
{
get
{
return _color;
}
}
public int Index
{
get
{
return _color.GetHashCode()-1;
}
}
}
這樣再將重新包裝的類繫結到下拉列,就可以實現列舉在列表中的選擇了。
相關推薦
在Datagridview控制元件利用下拉選單進行列舉資料輸入
在Datagridview控制元件利用下拉選單進行資料輸入可以使使用者操作更加方便,在配置COMBOX控制元件時,只要設定了datasource, displaymember,valuemember,即可實現comboxbox的資料輸入,如: 有一個類如下: pu
在visual studio 2017下用xamarin for android 做個簡單的註冊頁面,包含單選控制元件,多選控制元件和下拉選單控制元件
照著牛腩老師的視訊,自己做了個註冊頁面,實現了簡單的單選控制元件、多選控制元件、下拉選單控制元件的使用,由於日曆控制元件太醜,就不模仿了,下面就是reg.axml的佈局效果,後面是程式碼。 , <?xml version="1.0" encoding="utf-8"?
通過ajax動態載入select控制元件【下拉框】的option
一、JS方式 關鍵程式碼: <select id="ddlResourceType" onchange="getvalue(this)"></select> var objSelect = document.getElementById("ddlR
樹形控制元件,下拉框,listbox的用法
MFC樹控制元件的簡單入門 本文簡單介紹了有關MFC中樹形控制元件的最基本的用法,鑑於水平有限,僅希望能夠讀者通過簡單的程式設計例項,起到對樹形控制元件入門之目的。因為筆者對MFC知識點的學習也都是從例項中學習,這樣效率會相對較高,好了不說廢話了,開始… 1.
C# winfrom Datagridview控制元件下拉選單
拖拽一個datagridview放在介面,編輯列把下來選單那列ColumnType設定成DataGridViewComboBoxColumn 然後在資料一欄的Items可以寫下來選單的內容也可以後臺程式碼寫 下面是後臺程式碼實現功能 private void dgUserAuthData_Edi
在DataGridView控制元件中顯示下拉列表
實現效果: 知識運用: DataGridViewComboBoxColumn類 //通過該類可以建立下拉列表樣式的列 實現程式碼: private void Form1_Load(object sender, EventArgs e)
下拉重新整理控制元件包裹下的ListView側滑出選單的實現
package com.moopoo.widget; import android.content.Context; import android.support.v4.widget.SwipeRefreshLayout; import android.util.AttributeSet; import
Android使用控制元件Spinner實現下拉選單列表
實現效果如下: 1.實現程式碼 package com.example.testspanner; import java.util.ArrayList; import java.util.Li
使用語句控制DEV下拉選單
1、DevExpress.XtraEditors.LookUpEdit的基本用法 public void InitLookUpEditor() { //  
下拉選單按鈕元件
<div class="dropdown"> <button class="btn btn-default" data-toggle="dropdown" > Dropdown <span class="caret"><
【Bootstarp】詳解下拉選單元件
文章目錄 下拉框 下拉分隔線 選單標題 選單項狀態 下拉框 1.引入js @*1、Jquery元件引用*@ <script src="~/Scripts/jquery-1.10.2.js"></s
利用二維陣列建立動態下拉選單&購物簡易計算器
1.利用二維陣列建立動態下拉選單 <!doctype html> <html> <head> <meta charset="utf-8"> <title>實戰</title> <scr
CASE----使用Timer控制元件對DataGridView控制元件中的資料進行更新
問題引入 DataGridView控制元件可以將集合中的資料值以表的形式顯示,由於DataGridView是靜態控制元件,從而存在當集合中的資料值發生變化時,DataGridView控制元件不會隨著集合中資料的變化而變化。 解決思想 Ti
C#:DataGridView控制元件的使用。繪製行號。新增右鍵選單
1.簡單使用 using System; using System.Collections.Generic; using System.Windows.Forms; namespace WindowsFormsApp17 { public partial class Form1 : F
iOS點選下拉選單的實現(利用UITableView + UIButton + UILabel)
我們在學習的過程中,可能會遇到需要新增下拉選單功能的時候,有的小夥伴可能一時半會想不出來怎樣實現,那麼我今天就來給大家分享一下我的方法 先看一下效果圖 左邊是一個UIButton,點選前是如下效果 這是點選星期三後的效果 這樣,就實現
第三方控制元件:上拉載入、下拉重新整理控制元件
使用: (1)匯入第三方外掛庫 Android-PullToRefresh-master.zip (2) 在佈局檔案中使用第三方外掛 com.handmark.pulltorefresh.library.PullToRefreshListView (3) 自定
android利用PopupWindow實現點選工具欄彈出下拉選單
package com.example.dropdownmenu; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import android.os.Bu
32.利用UIViewAnimation動畫製作一個簡單的下拉選單
在部分App裡, 我們會看到左上角或者右上角都會有一個按鈕, 點選之後就會出現一個簡易的小選單, 有人問這個怎麼實現呢, 讓我們來看看. PS: 已經更新到Swift 2.1, 支援iOS 9.1 1.介面佈局 在ViewController的
利用Jquery實現二級下拉選單
最近在學習前端的內容:看到別人做的二級選單挺好看的。下載別人的Demo看起來比較麻煩,所以就嘗試了自己做一個簡單二級下拉選單: 效果圖如下: 下拉選單實現後的效果圖: 沒有做什麼美化,只是從功能上實現下拉選單 HTML程式碼: <!DOCTYPE ht
IOS使用UItableView實現下拉選單元件(UITableView的使用方法)
一. 基礎版本 在登陸介面有時需要儲存已經登陸的賬號資訊,可以點開一個下拉選單選擇儲存的賬號,這裡是用UIKit的表格元件編寫一個下拉選單元件demo,實現思路如下: 1.首先在一個UIViewController裡放一個按鈕或者標籤框,用來顯示當