C# winform ComboBox繫結資料來源時觸發SelectedIndexChanged事件的處理
var wardList = (from ward in alarmInfoList select new { ward.AlarmJQ, ward.AlarmJQName }).Distinct(); List<WardInfo> wiList = new List<WardInfo>(); foreach (var ward in wardList) { WardInfo wi = new WardInfo(); wi.AlarmJQ = ward.AlarmJQ; wi.AlarmJQName = ward.AlarmJQName; wiList.Add(wi); } cboWard.DataSource = wiList; cboWard.ValueMember = "AlarmJQ"; cboWard.DisplayMember = "AlarmJQName";
private void cboWard_SelectedIndexChanged(object sender, EventArgs e) { var departmentList = (from department in alarmInfoList where department.AlarmJQ == cboWard.SelectedValue.ToString() select new { department.AlarmArea, department.AlarmAreaName }).Distinct(); List<DepartmentInfo> diList = new List<DepartmentInfo>(); DepartmentInfo diAll = new DepartmentInfo(); diAll.AlarmArea = -1; diAll.AlarmAreaName = "全部"; diList.Add(diAll); foreach (var department in departmentList) { DepartmentInfo di = new DepartmentInfo(); di.AlarmArea = department.AlarmArea; di.AlarmAreaName = department.AlarmAreaName; diList.Add(di); } cboDepartment.DataSource = diList; cboDepartment.DisplayMember = "AlarmAreaName"; cboDepartment.ValueMember = "AlarmArea"; }
cboWard繫結完後,會自動觸發一遍SelectedIndexChanged事件,此時cboWard.SelectedValue是
List<WardInfo> wiList = new List<WardInfo>();
裡面的WardInfo物件,而不是想要的
cboWard.ValueMember = "AlarmJQ";
value值,導致cboDepartment沒有資料。
解決方式:
List<WardInfo> wiList = new List<WardInfo>(); foreach (var ward in wardList) { WardInfo wi = new WardInfo(); wi.AlarmJQ = ward.AlarmJQ; wi.AlarmJQName = ward.AlarmJQName; wiList.Add(wi); } //去除委託 cboWard.SelectedIndexChanged -= new EventHandler(cboWard_SelectedIndexChanged); cboWard.DataSource = wiList; cboWard.ValueMember = "AlarmJQ"; cboWard.SelectedIndexChanged += new EventHandler(cboWard_SelectedIndexChanged); cboWard.DisplayMember = "AlarmJQName";
注意:
cboWard.SelectedIndexChanged += new EventHandler(cboWard_SelectedIndexChanged);
cboWard.DisplayMember = "AlarmJQName";
DisplayMember一定要放到增加委託後面,否則聯動失敗。
如有什麼問題,或者更好的方式,希望大家指正!
相關推薦
C# winform ComboBox繫結資料來源時觸發SelectedIndexChanged事件的處理
ComboBox二級聯動時,發現一個問題。如下 var wardList = (from ward in alarmInfoList sele
winfrom 窗體控制元件實現二級聯動 ComboBox繫結資料來源時觸發SelectedIndexChanged事件的處理辦法
ComboBox繫結資料來源時觸發SelectedIndexChanged事件的處理辦法 事件,而這個時候使用者並沒有選擇內容,其SelectedValue也不是對應欄位的值。那麼時寫在SelectedIndexChanged中的處理程式碼就會因為SelectedValue的內容不正確引發異常。一般網上找到
c# combobox繫結資料來源
繫結資料來源: private void button2_Click(object sender, EventArgs e) { DataTable table = new DataTable();
繫結資料來源時組合框ComboBox.DrawItem的事件處理方法
在一些窗體應用程式中,常常需要重寫組合框控制元件ComboBox的DrawItem事件處理方法,例如:顏色選擇組合框、帶圖示的組合框、調整項間距的組合框,等等。基本步驟如下: 設定ComboBox.DrawMode為OwnerDrawFixed或OwnerDrawVa
.NET控制元件ComboBox繫結資料來源的一個Bug及解決方法
ComboBox常用於繫結到一個數據源表的某個欄位,提供選擇並更新功能。下面用具體例項介紹它的一個Bug及解決辦法。 1、演示Bug的程式碼 窗體Form1上有組合框comboBox1和一個顯示資料表字段的按鈕button1,演示程式碼如下: priva
C#中comboBox繫結資料集後事件中取值出System.data.dataRowView問題
寫了一段程式碼,希望通過comboBox選項自動關聯填充另外兩項輸入框時發現數據獲取異常 comboBox繫結資料來源程式碼如下: this.cbKHMC.DataSource = dt; this.cbKHMC.Displa
js中三種事件繫結之間的關係和事件處理函式裡的this值
<!DOCTYPE HTML> <html > <head> <meta charset="UTF-8"> </head> <body> <div id="b" onclick="cons
C# Winform datagridview控制元件繫結資料來源後列順序混亂
現象描述: datagridview控制元件,預設狀態列順序正常。 單擊查詢按鈕,繫結資料來源後,列順序出現變化。 (如,正常應該是12345,查詢繫結資料後變為123
c# datagridview繫結資料來源(BindingList<class>)中的現象 待查
現象1: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using Sys
Winform中Combox繫結資料來源 型別作為引數傳遞
//呼叫 IniCombox(cbChannelName, typeof(Model.SystemEnum.ChannelName)); //具體實現 public void IniCombox(Relations.Control.ComBox cb, Type type)
Winform Comobox 繫結 Dictionary資料來源
使用BindingSource進行間接繫結 Dictionary<string ,string> dic=new Dictionary<string,string>();
C# DataGridView重新繫結時保持上次滾動位置
int currentLine = 0; if (dataGridView.FirstDisplayedScrollingRowIndex >= 0) { currentLine = dataGridView.FirstDisplayedScrollingRo
winform datagridview中combobox列改變選項時觸發其他列變化
tro edi fde info sender orm ted exchange pro 之前想使用DataGridView的SelectionChanged事件,但是使用了後並沒有達到效果 最後使用下面的方式實現: private void materialCheckG
C# DataGridView控制元件繫結資料來源的方式
注: 直接新增並繫結資料庫,要刪除的話,需(?)刪除資料庫中的資料,然後重新給DATAGRIDVIEW繫結資料來源,使用dataGridView.Row.Clear()無效。 第一種: DataSet ds=new DataSet (); this.da
C#用 XML 繫結多個ComboBox
0 繫結第一個ComboBox private void Mxdr_Form_Load(object sender, EventArgs e) { string str = @"Total.xml"; //\bin
c# datagridvew繫結資料來源
經過各種百度谷歌搜尋,終於總結出一下幾種繫結datagridview資料來源的方法: 1.說明: 俗稱資料操作多面手,是Microsoft Visual Studio中的一個控制元件。使用 DataGridView 控制元件,可以顯示和編輯來自多種不同型別的資料來源的表格資
c#中手動給dataGridView繫結資料來源的方法
c#中手動給dataGridView繫結資料來源,這中方法操作資料的主要好處就是能夠很自由,但表現資料沒有C#自動新增資料來源那麼方便,不過我們可以手動給dataGridView新增資料來源,如果有興趣,建議你發5分鐘時間研究一下下面的實現方法. 有時為了方便操作資料,我們更願意手動連線資料來源,但
easyUI-combobox 動態繫結資料來源
前臺 <link rel="stylesheet" type="text/css" href="../css/easyui.css"/> <script type="text/javascript" src="../js/jquery-1.7.1.mi
關於LookUpEdit繫結資料來源和取值
首先在GridControl裡在Repository中新增一個GridLookUpEdit 在設定DisPlayMember(介面顯示欄位) 然後在後臺繫結資料 List<EntityBrand> entityBrand = client.GetBrandList(); this.rep
2018年11月2日 關於dropdownlist,繫結資料來源後顯示system.data.datarowview的問題解決
準備實現兩個dropdownlist二級聯動的功能: 在一個dropdownlist 繫結過資料來源之後顯示,system.data.datarowview,無法顯示從資料庫中查詢到的值。 原因是: DropDownList4.DataTextField沒有繫結。 &nb