###前提・実現したいこと
前回の質問の続きです。
Visual Studio 2015 Pro, C#、Windows FormでDataGridViewにBindingしようとしています。
データソースを作っています。
###発生している問題・エラーメッセージ
データソースにデータを入れる方法がわかりません。
desingnerで見て
this.infoModelBindingSource = new BindingSource( models, string.Empty);
かとおもいましたが、データを表示できません。
###該当のソースコード
C#
1using System; 2using System.Collections.Generic; 3using System.Windows.Forms; 4 5namespace WindowsFormsApplication2 6{ 7 public partial class Form1 : Form 8 { 9 public Form1() 10 { 11 InitializeComponent(); 12 } 13 14 private void Form1_Load(object sender, EventArgs e) 15 { 16 List<InfoModel> models = new List<InfoModel>(); 17 var man1 = new InfoModel { 18 Name="A", 19 Sex="M", 20 Age=19, 21 Like="BascketBall" 22 }; 23 models.Add(man1); 24 var woman1 = new InfoModel 25 { 26 Name = "B", 27 Sex = "F", 28 Age = 18, 29 Like = "Dance" 30 }; 31 models.Add(woman1); 32 this.infoModelBindingSource = new BindingSource( models, string.Empty); 33 //デザイナーでBindしたのでコメントアウト。 34 //this.dataGridView1.DataSource = new BindingSource(models, string.Empty); 35 //this.dataGridView1.Columns[2].DisplayIndex = 0; 36 //this.dataGridView1.Columns[3].DisplayIndex = 1; 37 38 } 39 } 40 public class InfoModel : BaseModel 41 { 42 public int Age { get; set; } 43 public string Like { get; set; } 44 } 45 46 public class BaseModel 47 { 48 public string Name { get; set; } 49 public string Sex { get; set; } 50 } 51}
C#
1namespace WindowsFormsApplication2 2{ 3 partial class Form1 4 { 5 /// <summary> 6 /// 必要なデザイナー変数です。 7 /// </summary> 8 private System.ComponentModel.IContainer components = null; 9 10 /// <summary> 11 /// 使用中のリソースをすべてクリーンアップします。 12 /// </summary> 13 /// <param name="disposing">マネージ リソースを破棄する場合は true を指定し、その他の場合は false を指定します。</param> 14 protected override void Dispose(bool disposing) 15 { 16 if (disposing && (components != null)) 17 { 18 components.Dispose(); 19 } 20 base.Dispose(disposing); 21 } 22 23 #region Windows フォーム デザイナーで生成されたコード 24 25 /// <summary> 26 /// デザイナー サポートに必要なメソッドです。このメソッドの内容を 27 /// コード エディターで変更しないでください。 28 /// </summary> 29 private void InitializeComponent() 30 { 31 this.components = new System.ComponentModel.Container(); 32 this.dataGridView1 = new System.Windows.Forms.DataGridView(); 33 this.infoModelBindingSource = new System.Windows.Forms.BindingSource(this.components); 34 this.nameDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); 35 this.ageDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); 36 this.sexDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); 37 this.likeDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); 38 ((System.ComponentModel.ISupportInitialize)(this.dataGridView1)).BeginInit(); 39 ((System.ComponentModel.ISupportInitialize)(this.infoModelBindingSource)).BeginInit(); 40 this.SuspendLayout(); 41 // 42 // dataGridView1 43 // 44 this.dataGridView1.AutoGenerateColumns = false; 45 this.dataGridView1.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; 46 this.dataGridView1.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { 47 this.nameDataGridViewTextBoxColumn, 48 this.ageDataGridViewTextBoxColumn, 49 this.sexDataGridViewTextBoxColumn, 50 this.likeDataGridViewTextBoxColumn}); 51 this.dataGridView1.DataSource = this.infoModelBindingSource; 52 this.dataGridView1.Dock = System.Windows.Forms.DockStyle.Fill; 53 this.dataGridView1.Location = new System.Drawing.Point(0, 0); 54 this.dataGridView1.Name = "dataGridView1"; 55 this.dataGridView1.Size = new System.Drawing.Size(531, 278); 56 this.dataGridView1.TabIndex = 0; 57 // 58 // infoModelBindingSource 59 // 60 this.infoModelBindingSource.DataSource = typeof(WindowsFormsApplication2.InfoModel); 61 // 62 // nameDataGridViewTextBoxColumn 63 // 64 this.nameDataGridViewTextBoxColumn.DataPropertyName = "Name"; 65 this.nameDataGridViewTextBoxColumn.HeaderText = "Name"; 66 this.nameDataGridViewTextBoxColumn.Name = "nameDataGridViewTextBoxColumn"; 67 // 68 // ageDataGridViewTextBoxColumn 69 // 70 this.ageDataGridViewTextBoxColumn.DataPropertyName = "Age"; 71 this.ageDataGridViewTextBoxColumn.HeaderText = "Age"; 72 this.ageDataGridViewTextBoxColumn.MaxInputLength = 100; 73 this.ageDataGridViewTextBoxColumn.Name = "ageDataGridViewTextBoxColumn"; 74 // 75 // sexDataGridViewTextBoxColumn 76 // 77 this.sexDataGridViewTextBoxColumn.DataPropertyName = "Sex"; 78 this.sexDataGridViewTextBoxColumn.HeaderText = "Sex"; 79 this.sexDataGridViewTextBoxColumn.Name = "sexDataGridViewTextBoxColumn"; 80 // 81 // likeDataGridViewTextBoxColumn 82 // 83 this.likeDataGridViewTextBoxColumn.DataPropertyName = "Like"; 84 this.likeDataGridViewTextBoxColumn.HeaderText = "Like"; 85 this.likeDataGridViewTextBoxColumn.Name = "likeDataGridViewTextBoxColumn"; 86 // 87 // Form1 88 // 89 this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); 90 this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; 91 this.ClientSize = new System.Drawing.Size(531, 278); 92 this.Controls.Add(this.dataGridView1); 93 this.Name = "Form1"; 94 this.Text = "Form1"; 95 this.Load += new System.EventHandler(this.Form1_Load); 96 ((System.ComponentModel.ISupportInitialize)(this.dataGridView1)).EndInit(); 97 ((System.ComponentModel.ISupportInitialize)(this.infoModelBindingSource)).EndInit(); 98 this.ResumeLayout(false); 99 100 } 101 102 #endregion 103 104 private System.Windows.Forms.DataGridView dataGridView1; 105 private System.Windows.Forms.BindingSource infoModelBindingSource; 106 private System.Windows.Forms.DataGridViewTextBoxColumn nameDataGridViewTextBoxColumn; 107 private System.Windows.Forms.DataGridViewTextBoxColumn ageDataGridViewTextBoxColumn; 108 private System.Windows.Forms.DataGridViewTextBoxColumn sexDataGridViewTextBoxColumn; 109 private System.Windows.Forms.DataGridViewTextBoxColumn likeDataGridViewTextBoxColumn; 110 } 111} 112

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/01/19 00:36
退会済みユーザー
2018/01/19 02:06
2018/01/19 05:57
退会済みユーザー
2018/01/19 07:06