本文提供如何將物件的陣列系結至 DataGrid 控件的相關信息。
原始產品版本: Visual C#
原始 KB 編號: 315786
摘要
本文中的範例包含具有 DataGrid 控制件的 Windows 表單,可顯示物件屬性值和四個命令按鈕,以流覽 DataGrid 控件的數據列。
需求
本文假設您已熟悉下列主題:
- Visual C# 程式設計概念
- Visual C# .NET
設計類別
要系結至控件的類別必須具有屬性存取子。 要系結的任何屬性都必須具有 property Set 方法和 property Get 方法。 本文中使用的範例類別有三個成員。 本文僅說明一個成員。 也已提供參數化建構函式。 不過,這不是必要條件。
public class guitar
{
private string make;
private string model;
private short year;
public guitar()
{
}
public guitar(string make, string model, short year)
{
Make=make;
Model=model;
Year=year;
}
public string Make
{
get
{
return make;
}
set
{
make = value;
}
}
}
將類別實例新增至陣列
若要建立實例並將其新增至數位,請遵循下列步驟:
宣告陣列。
建立 類別的實例,然後將實例新增至陣列。
private guitar[] arr=new guitar[3]; arr[0] = new guitar("Gibson", "Les Paul", 1958); arr[1] = new guitar("Fender", "Jazz Bass", 1964); arr[2] = new guitar("Guild", "Bluesbird", 1971);
將數位系結至 DataGrid 控制件
填入數位之後,請將 DataGrid 控制件的 DataSource 屬性設定為數位。 DataGrid 控件中的數據行會根據範圍內屬性存取子存在的屬性來填入。
dataGrid1.DataSource=arr;
提供瀏覽陣語的方法
您可以使用 CurrencyManager 來瀏覽陣列。 若要這樣做,請與 BindingContext 控件的 關聯CurrencyManager,在此案例中為 陣列。
private CurrencyManager currencyManager=null;
currencyManager = (CurrencyManager)dataGrid1.BindingContext[arr];
類別 CurrencyManager 具有 Position 屬性,您可以操作以逐一查看數位的成員。 藉由加入或減去 的目前值 Position,您可以流覽控制件的數據 DataGrid 列。
//Move forward one element.
currencyManager.Position++;
//Move back one element.
currencyManager.Position--;
//Move to the beginning.
currencyManager.Position = 0;
//Move to the end.
currencyManager.Position = arr.Length - 1;
逐步說明範例
在 Visual C# .NET 中,建立新的 Windows 應用程式專案。 Form1 預設會建立。
將類別加入至專案。
將 Class1.cs 中的程式代碼取代為下列程式代碼。
public class guitar { private string make; private string model; private short year; public guitar() { } public guitar(string Make, string Model, short Year) { make=Make; model=Model; year=Year; } public string Make { get { return make; } set { make = value; } } public string Model { get { return model; } set { model = value; } } public short Year { get { return year; } set { year = value; } } }關閉Class1.cs程式代碼視窗,然後切換至窗體設計工具。
將 DataGrid 控件新增至 Form1。 調整 DataGrid 控制件的大小,以容納四個數據行和三個數據列。
將四個 Button 控件新增至 Form1,然後水平排列按鈕。
將 Button1 的 Text 屬性變更為 [下一步]。
將 Button2 的 Text 屬性變更為 [上一頁]。
將 Button3 的 Text 屬性變更為 First。
將 Button4 的 Text 屬性變更為 Last。
將下列程式碼加入
Form1類別。private guitar[] arr=new guitar[3]; private CurrencyManager currencyManager=null;切換至 表單設計工具,以滑鼠右鍵按兩下表單,然後按下 [ 屬性]。
按兩下 [ 事件 ] 圖示,然後按兩下載入事件,將事件新增
Form1_Load至您的程式代碼。將下列程式碼新增至
Form1_Load事件。arr[0] = new guitar("Gibson", "Les Paul", 1958); arr[1] = new guitar("Fender", "Jazz Bass", 1964); arr[2] = new guitar("Guild", "Bluesbird", 1971); currencyManager = (CurrencyManager)dataGrid1.BindingContext[arr]; dataGrid1.DataSource=arr;切換以檢視 表單設計工具。
按兩下 [ 下一步],然後將下列程式代碼新增至
button1_Click事件。currencyManager.Position++;按兩下 [ 上一步],然後將下列程式代碼新增至
button2_Click事件。currencyManager.Position--;按兩下 [ 第一個],然後將下列程式代碼新增至
button3_Click事件。currencyManager.Position = 0;按兩下 [ 最後],然後將下列程式代碼新增至
button4_Click事件。currencyManager.Position = arr.Length - 1;建置並執行專案。
按兩下命令按鈕,在 DataGrid 控制資料列之間移動。
注意
如有需要,您可以編輯物件的值。
使用結構而非類別
系結結構的規則與系結物件的規則相同。 需要成員存取子的屬性。 針對此目的所建立的結構類似於類別。
若要系結至結構的陣列,請遵循下列步驟。
變更範例中Class1.cs類模組的定義
public class guitar至下列範例:
public struct guitar將預設建構函式批注化,如下所示。
//public guitar() //{ //}再次建置並執行範例程式,並確認其具有結構的陣列。
參考資料
如需詳細資訊,請參閱 Visual Studio.NET Online 說明中的 Windows Forms 上的數據取用者主題。