Created
March 17, 2012 09:55
-
-
Save serian/2057222 to your computer and use it in GitHub Desktop.
DataGridView BindingSource List オブジェクト バインド
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
using System; | |
using System.Collections.Generic; | |
using System.ComponentModel; | |
using System.Data; | |
using System.Drawing; | |
using System.Linq; | |
using System.Text; | |
using System.Windows.Forms; | |
using System.Collections; | |
namespace DataGridObj | |
{ | |
/// <summary> | |
/// ユーザー定義のデータ型のリストをDataGridViewにバインドして表示する | |
/// </summary> | |
/// <remarks> | |
/// DataGridViewはVSのデザイナ画面でDnD | |
/// BindingDataSouceも同じく | |
/// あとは、自前で | |
/// </remarks> | |
public partial class Form1 : Form | |
{ | |
private List<DataItem> dis; | |
public Form1() | |
{ | |
InitializeComponent(); | |
} | |
/// <summary> | |
/// ユーザー定義のデータ型のリストをDataGridViewにバインドして表示する | |
/// </summary> | |
/// <param name="sender"></param> | |
/// <param name="e"></param> | |
private void Form1_Load(object sender, EventArgs e) | |
{ | |
dis = new List<DataItem>() | |
{ | |
new DataItem{Name = "asdf", Status="aaa", Note="none"}, | |
new DataItem{Name="bsdf", Status="bbb", Note="go"}, | |
new DataItem{Name="csdf", Status="ccc", Note="went"} | |
}; | |
/// BindingSourceはnewする | |
this.bindingSource1 = new BindingSource(); | |
this.bindingSource1.DataSource = dis; | |
// this.dataGridView1 = new DataGridView(); | |
///先に自動作成を切っておいてからバインド | |
this.dataGridView1.AutoGenerateColumns = false; | |
this.dataGridView1.DataSource = bindingSource1; | |
dataGridView1.Columns.Add(maketextColumn("Name", "名前")); | |
dataGridView1.Columns.Add(maketextColumn("Status", "ステータス")); | |
dataGridView1.Columns.Add(maketextColumn("Note", "ノート")); | |
this.Controls.Add(this.dataGridView1); | |
this.AutoSize = true; | |
} | |
/// <summary> | |
/// DataGridViewTextBoxColumnを作って返す | |
/// </summary> | |
/// <param name="src">該当するデータの名前</param> | |
/// <param name="name">グリッドのカラムに表示する名前</param> | |
/// <returns></returns> | |
private DataGridViewTextBoxColumn maketextColumn(string src, string name) | |
{ | |
var col = new DataGridViewTextBoxColumn(); | |
col.DataPropertyName = src; | |
col.Name = name; | |
return col; | |
} | |
/// <summary> | |
/// BindingSourceに新たなレコードを追加し、グリッドに表示する | |
/// </summary> | |
/// <param name="sender"></param> | |
/// <param name="e"></param> | |
private void button1_Click(object sender, EventArgs e) | |
{ | |
// var src = this.bindingSource1.List; | |
bindingSource1.Add(new DataItem { Name = "dsdf", Status = "ddd", Note = "back"}); | |
bindingSource1.EndEdit(); | |
} | |
/// <summary> | |
/// DataGridView上のカーソル位置のレコードのNameを表示する | |
/// BindingSourceから取得 | |
/// </summary> | |
/// <param name="sender"></param> | |
/// <param name="e"></param> | |
private void button2_Click(object sender, EventArgs e) | |
{ | |
MessageBox.Show(((DataItem)bindingSource1[dataGridView1.CurrentCellAddress.Y]).Name); | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment