C1 FlexGrid for Winform的ComboBox列綁定與值

本文就來介紹,綁定模式下將值設置給C1FlexGrid的ComboBox列。在綁定FlexGrid的列展示IList類型

在當前的場景下,ComboBox的數據源是用戶定義的類,叫做CountryDetails。在grid中的每一行代表CountryDetail類的對象,然後類共有屬性通過columns(Country,Currency,Population等)計算。其中CountryDetails是列表:StateOptions(今天主要關注)在本文的示例中,我們允許用戶從數據源記錄相關中選擇state。

設置ContryDetails作為ComboBox控制項的數據源,然後保存選擇的值到對象的empty屬性。

工具/原料

ComponentOne
FlexGrid for Winform

方法/步驟

設置FlexGrid的數據源,然後創建provinces列表

namespace DynamicFlexGrid

{

public partial class Form1 : Form

{

List objectList;

public Form1()

{

InitializeComponent();

}

private void Form1_Load(object sender, EventArgs e)

{

objectList = setupMyBusinessObject();

c1FlexGrid1.DataSource = objectList;

c1FlexGrid1.AutoSizeCols();

c1FlexGrid1.Cols[4].AllowEditing = false;

c1FlexGrid1.Cols[2].Caption = "City/State";

}

List setupMyBusinessObject()

{

List mboList = new List();

CountryDetails mbo = new CountryDetails();

mbo.Country = "Afghanistan";

mbo.Currency = "Afghan afghani";

mbo.Population = "30.55 million";

mbo.StateOptions = new List();

mbo.StateOptions.Add("Mazar-i-Sharif");

mbo.StateOptions.Add("Kabul");

mbo.StateOptions.Add("Kandahar");

mbo.StateOptions.Add("Herat");

mbo.StateOptions.Add("Kunduz");

mboList.Add(mbo);

mbo = new CountryDetails();

mbo.Country = "Belgium";

mbo.Currency = "Euro";

mbo.Population = "11.2 million";

mbo.StateOptions = new List();

mbo.StateOptions.Add("Antwerp");

mbo.StateOptions.Add("East Flanders");

mbo.StateOptions.Add("Flemish Brabant");

mbo.StateOptions.Add("Flemish Brabant");

mbo.StateOptions.Add("West Flanders");

mboList.Add(mbo);

mbo = new CountryDetails();

mbo.Country = "Canada";

mbo.Currency = "Canadian dollar";

mbo.Population = "35.16 million";

mbo.StateOptions = new List();

mbo.StateOptions.Add("Ontario");

mbo.StateOptions.Add("Quebec");

mbo.StateOptions.Add("Nova Scotia");

mbo.StateOptions.Add("New Brunswick");

mbo.StateOptions.Add("Manitoba");

mboList.Add(mbo);

mbo = new CountryDetails();

mbo.Country = "Denmark";

mbo.Currency = "Danish krone";

mbo.Population = "5.614 million";

mbo.StateOptions = new List();

mbo.StateOptions.Add("Copenhagen");

mbo.StateOptions.Add("Aarhus");

mbo.StateOptions.Add("Odense");

mbo.StateOptions.Add("Aalborg");

mbo.StateOptions.Add("Frederiksberg");

mboList.Add(mbo);

mbo = new CountryDetails();

mbo.Country = "Egypt";

mbo.Currency = "Egyptian pound";

mbo.Population = "82.06 million";

mbo.StateOptions = new List();

mbo.StateOptions.Add("Cairo");

mbo.StateOptions.Add("Alexandria");

mbo.StateOptions.Add("Giza");

mbo.StateOptions.Add("Shubra El-Kheima");

mbo.StateOptions.Add("Port Said");

mboList.Add(mbo);

mbo = new CountryDetails();

mbo.Country = "France";

mbo.Currency = "Euro";

mbo.Population = "66.03 million";

mbo.StateOptions = new List();

mbo.StateOptions.Add("Alsace");

mbo.StateOptions.Add("Aquitaine");

mbo.StateOptions.Add("Auvergne");

mbo.StateOptions.Add("Brittany");

mbo.StateOptions.Add("Burgundy");

mboList.Add(mbo);

mbo = new CountryDetails();

mbo.Country = "Germany";

mbo.Currency = "Euro";

mbo.Population = "80.62 million";

mbo.StateOptions = new List();

mbo.StateOptions.Add("Baden-Württemberg");

mbo.StateOptions.Add("Bavaria");

mbo.StateOptions.Add("Berlin");

mbo.StateOptions.Add("Brandenburg");

mbo.StateOptions.Add("Bremen");

mboList.Add(mbo);

mbo = new CountryDetails();

mbo.Country = "Hungary";

mbo.Currency = "Hungarian forint";

mbo.Population = "9.897 million";

mbo.StateOptions = new List();

mbo.StateOptions.Add("Budapest");

mbo.StateOptions.Add("Debrecen");

mbo.StateOptions.Add("Miskolc");

mbo.StateOptions.Add("Szeged");

mbo.StateOptions.Add("Szombathely");

mboList.Add(mbo);

mbo = new CountryDetails();

mbo.Country = "India";

mbo.Currency = "Rupee";

mbo.Population = "1.252 billion";

mbo.StateOptions = new List();

mbo.StateOptions.Add("Uttar Pradesh");

mbo.StateOptions.Add("Madhya Pradesh");

mbo.StateOptions.Add("Maharashtra");

mbo.StateOptions.Add("Shimla");

mbo.StateOptions.Add("Goa");

mboList.Add(mbo);

mbo = new CountryDetails();

mbo.Country = "Japan";

mbo.Currency = "Japanese yen";

mbo.Population = "127.3 million";

mbo.StateOptions = new List();

mbo.StateOptions.Add("Nagoya");

mbo.StateOptions.Add("Tokoname");

mbo.StateOptions.Add("Nisshin");

mbo.StateOptions.Add("Utashinai");

mbo.StateOptions.Add("Sendai");

mboList.Add(mbo);

mbo = new CountryDetails();

mbo.Country = "Kenya";

mbo.Currency = "Kenyan shilling";

mbo.Population = "44.35 million";

mbo.StateOptions = new List();

mbo.StateOptions.Add("Mombasa");

mbo.StateOptions.Add("Nairobi");

mbo.StateOptions.Add("Kisumu");

mbo.StateOptions.Add("Eldoret");

mbo.StateOptions.Add("Lodwar");

mboList.Add(mbo);

mbo = new CountryDetails();

mbo.Country = "Libya";

mbo.Currency = "Libyan dinar";

mbo.Population = "6.202 million";

mbo.StateOptions = new List();

mbo.StateOptions.Add("Nuqat al Khams");

mbo.StateOptions.Add("Zawiya");

mbo.StateOptions.Add("Jafara");

mbo.StateOptions.Add("Tripoli");

mbo.StateOptions.Add("Murqub");

mboList.Add(mbo);

mbo = new CountryDetails();

mbo.Country = "Madagascar";

mbo.Currency = "Malagasy ariary";

mbo.Population = "22.92 million";

mbo.StateOptions = new List();

mbo.StateOptions.Add("Diana");

mbo.StateOptions.Add("Sava");

mbo.StateOptions.Add("Itasy");

mbo.StateOptions.Add("Analamanga");

mbo.StateOptions.Add("Vakinankaratra");

mboList.Add(mbo);

mbo = new CountryDetails();

mbo.Country = "New Zealand";

mbo.Currency = "New Zealand dollar";

mbo.Population = "4.471 million";

mbo.StateOptions = new List();

mbo.StateOptions.Add("Auckland");

mbo.StateOptions.Add("Wellington");

mbo.StateOptions.Add("Christchurch");

mbo.StateOptions.Add("Hamilton");

mbo.StateOptions.Add("Napier-Hastings");

mboList.Add(mbo);

mbo = new CountryDetails();

mbo.Country = "Oman";

mbo.Currency = "Omani rial";

mbo.Population = "3.632 million";

mbo.StateOptions = new List();

mbo.StateOptions.Add("Ad Dakhiliyah");

mbo.StateOptions.Add("Ad Dhahirah North");

mbo.StateOptions.Add("Al Batinah North");

mbo.StateOptions.Add("Al Batinah South");

mbo.StateOptions.Add("Al Buraimi");

mboList.Add(mbo);

return (mboList);

}

List循環計算Combobox的值

private void c1FlexGrid1_BeforeEdit(object sender, RowColEventArgs e)

{

if (e.Col == 2)

{

comboBox1.DataSource = objectList[e.Row - 1].StateOptions;

c1FlexGrid1.Cols[2].Editor = comboBox1;

}

}

private void c1FlexGrid1_CellChanged(object sender, RowColEventArgs e)

{

c1FlexGrid1.AutoSizeCols();

}

}

public class CountryDetails

{

public string Country { get; set; }

public string States { get; set; }

public List StateOptions { get; set; }

public string Population { get; set; }

public string Currency { get; set; }

public CountryDetails() { }

}

}

然後再第一列country中就會展示相關的值。

原作者:葡萄城控制項

相關文章

  1. C1 FlexGrid for Winform:在單元格範圍內排序

    有些實際案例中需要實現針對單元格範圍而不是整個 C1FlexGrid 排序.C1FlexGrid 本身不具備該功能.在這篇文章中我們將討論如何通過代碼實現針對單元格範圍的排序. 背景:首先通過滑鼠或代 ...
  2. 在C1 FlexGrid for Winform中添加編輯刪除按鈕

    今天主要講解如何在C1FlexGrid 表格控制項中增加自定義的編輯和刪除列,C1FlexGrid 是 .NET 平台中性能最佳的表格控制項,常用於數據顯示和數據編輯操作 工具/原料 ComponentO ...
  3. C1 FlexGrid for Winform一次性多個列印

    在WinForm平台下,C1FlexGrid控制項有提供PrintGrid方法實現列印.但針對列印多個C1FlexGrid,只能使用循環列印,每次都要預覽,然後一個個的列印.這樣未免太麻煩.那麼,有沒有 ...
  4. C1 FlexGrid for WinForms個性化:序列化列順序

    C1FlexGrid提供了可供用戶調整列順序的接口,在設置下面代碼後: this.c1FlexGrid1.AllowDragging = C1.Win.C1FlexGrid.AllowDragging ...
  5. 關於winform中DataGridView列標題的顯示問題

    關於winform中DataGridView列標題的顯示問題 工具/原料 vs2013/vs2015 方法/步驟 如下圖所示 DataGridview的列在將數據源綁定為null時是否顯示取決於Dat ...
  6. C1 FlexGrid for WinForms高級列印預覽功能

    使用我們的明星產品 C1FlexGrid 可以輕鬆.快速的實現列印,只需要調用 PrintGrid 方法即可.該方法可以通過參數調用列印預覽窗體 工具/原料 ComponentOne FlexGrid ...
  7. C1 FlexGrid 與C1 Schedule控制項之間數據拖拽

    在商業應用系統中,控制項之間的數據交互是常見功能之一,數據拖拽就是很典型的數據交互形式,本文講述的功能也是來自實際的客戶需求,將 C1FlexGrid  數據拖拽到 C1Schedule 中,以此來創建 ...
  8. c# winform設置ComboBox的text和value

    using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...
  9. C1 FlexGrid for WinForms:創建分類匯總

    C1FlexGrid.Subtotal方法可以增加包含普通(非小計)行的匯總數據的分類匯總行. 工具/原料 ComponentOne FlexGrid for WinForms 方法/步驟 分類匯總支 ...
  10. 拖拽Excel到C1 FlexGrid for WinForms

    當我們加載 Excel 文件到 Windows 窗體應用程式時,最常見的方法是使用 Streams 去讀/寫 文件.另一種更好的方法是直接拖拽 Excel 文件到 FlexGrid 上.   這個例子 ...
  11. C1 FlexGrid for WinForms延遲加載網絡圖片

    日常使用C1FlexGrid的場景非常多,其中有這樣一個場景: "c1flexgrid顯示網絡圖片問題--cell顯示網絡圖片顯得太卡  主要是把網絡圖片下載到本地需要時間,每行顯示一張圖,行數多了, ...
  12. C1 FlexGrid for WinForms挖掘數據隱藏下的趨勢

    本篇博客講述了使用ComponentOne WinForms 表格控制項FlexGrid對大數據進行過濾.排序.分組.匯總直到列印和導出. 大數據時代的問題已經不是數據信息不足,而是如何從數據中挖掘出未 ...
  13. 兩個窗體中實現C1 FlexGrid for WinForms拖動

    最近我們有一位客戶提出這樣的需求,需要在兩個窗體之間拖動表格控制項,並且表格能夠自動布局,目的是為了對比表格中的數據變化.     在本文中,我們就會介紹如何通過C1FlexGrid for WinFo ...
  14. C1 FlexGrid for WinForms指定區域數據進行排序

    在某些特殊情況下,用戶需要對C1FlexGrid for WinForms中的數據進行一些特殊的排序操作,比如:只對指定區域的單元格數據進行排序,C1FlexGrid雖然沒有內置這樣的功能,不過我們可 ...
  15. C1 FlexGrid for WinForms的自動檢索實現

    如果希望C1FlexGrid的自動檢索,並且將檢索到的對象做特殊處理,就可以使用C1FlexGrid的AutoSearch屬性. 本文就基於WinForm平台來介紹如何使用AutoSearch做自動檢 ...
  16. Wijmo5 FlexGrid教程(14)- 列頭添加CheckBox

    本文就來介紹如何在列頭上添加CheckBox,使得整個列統一成為CheckBox列. 工具/原料 UI控制項:Wijmo5 .NET控制項集:ComponentOne Studio Enterprise ...
  17. Excel以某一列的重複值進行對比刪除相同的行?

    今天要和大家分享的是:Excel以某一列的重複值進行對比刪除相同的行? 工具/原料 Excel 方法/步驟 首先打開excel數據表格,會看到我們的數據源行上有很多重複值,如下圖所示: 選中數據區域, ...
  18. 利用Excel宏代碼快速批量刪除數據列的重複值

    如題目所示,本例我們來介紹一下如何使用宏代碼批量快速刪除EXCEL某列數據的重複值,僅保留重複值的其中一個(第一個): 方法/步驟 如下圖,假設,在A列中存在這樣的數據列,請仔細觀察數據,是不是存在重 ...
  19. excel2007如何快速比對出兩列數字的值是否相同

    在工作表中,我們需要快速比對出自己輸入的數字兩列是否完全相同,今天小編就教大家如何進行設置. 方法/步驟 打開excel,輸入相應的內容,這裡隨意舉例兩列數字,具體如圖所示. 我們假設比對結果為&qu ...
  20. MySql怎麼給列設置默認值 mysql修改默認值

    Mysql資料庫的好處我就不多說了,本經驗咗嚛針對平時常見的一個問題.Mysql新建的表怎麼給列設置默認值,簡單提供幾個常見的情況希望能幫到小夥伴. 關於怎麼連接mysql資料庫,可以參考咗嚛之前經驗 ...