###前提・実現したいこと
前回の質問の続きです。
Visual Studio 2015 Pro, C#、Windows FormでDataGridViewにBindingしようとしています。
データソースを作っています。
###発生している問題・エラーメッセージ
データソースにデータを入れる方法がわかりません。
desingnerで見て
this.infoModelBindingSource = new BindingSource( models, string.Empty);
かとおもいましたが、データを表示できません。
###該当のソースコード
C#
using System; using System.Collections.Generic; using System.Windows.Forms; namespace WindowsFormsApplication2 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { List<InfoModel> models = new List<InfoModel>(); var man1 = new InfoModel { Name="A", Sex="M", Age=19, Like="BascketBall" }; models.Add(man1); var woman1 = new InfoModel { Name = "B", Sex = "F", Age = 18, Like = "Dance" }; models.Add(woman1); this.infoModelBindingSource = new BindingSource( models, string.Empty); //デザイナーでBindしたのでコメントアウト。 //this.dataGridView1.DataSource = new BindingSource(models, string.Empty); //this.dataGridView1.Columns[2].DisplayIndex = 0; //this.dataGridView1.Columns[3].DisplayIndex = 1; } } public class InfoModel : BaseModel { public int Age { get; set; } public string Like { get; set; } } public class BaseModel { public string Name { get; set; } public string Sex { get; set; } } }
C#
namespace WindowsFormsApplication2 { partial class Form1 { /// <summary> /// 必要なデザイナー変数です。 /// </summary> private System.ComponentModel.IContainer components = null; /// <summary> /// 使用中のリソースをすべてクリーンアップします。 /// </summary> /// <param name="disposing">マネージ リソースを破棄する場合は true を指定し、その他の場合は false を指定します。</param> protected override void Dispose(bool disposing) { if (disposing && (components != null)) { components.Dispose(); } base.Dispose(disposing); } #region Windows フォーム デザイナーで生成されたコード /// <summary> /// デザイナー サポートに必要なメソッドです。このメソッドの内容を /// コード エディターで変更しないでください。 /// </summary> private void InitializeComponent() { this.components = new System.ComponentModel.Container(); this.dataGridView1 = new System.Windows.Forms.DataGridView(); this.infoModelBindingSource = new System.Windows.Forms.BindingSource(this.components); this.nameDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.ageDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.sexDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.likeDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); ((System.ComponentModel.ISupportInitialize)(this.dataGridView1)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.infoModelBindingSource)).BeginInit(); this.SuspendLayout(); // // dataGridView1 // this.dataGridView1.AutoGenerateColumns = false; this.dataGridView1.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; this.dataGridView1.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { this.nameDataGridViewTextBoxColumn, this.ageDataGridViewTextBoxColumn, this.sexDataGridViewTextBoxColumn, this.likeDataGridViewTextBoxColumn}); this.dataGridView1.DataSource = this.infoModelBindingSource; this.dataGridView1.Dock = System.Windows.Forms.DockStyle.Fill; this.dataGridView1.Location = new System.Drawing.Point(0, 0); this.dataGridView1.Name = "dataGridView1"; this.dataGridView1.Size = new System.Drawing.Size(531, 278); this.dataGridView1.TabIndex = 0; // // infoModelBindingSource // this.infoModelBindingSource.DataSource = typeof(WindowsFormsApplication2.InfoModel); // // nameDataGridViewTextBoxColumn // this.nameDataGridViewTextBoxColumn.DataPropertyName = "Name"; this.nameDataGridViewTextBoxColumn.HeaderText = "Name"; this.nameDataGridViewTextBoxColumn.Name = "nameDataGridViewTextBoxColumn"; // // ageDataGridViewTextBoxColumn // this.ageDataGridViewTextBoxColumn.DataPropertyName = "Age"; this.ageDataGridViewTextBoxColumn.HeaderText = "Age"; this.ageDataGridViewTextBoxColumn.MaxInputLength = 100; this.ageDataGridViewTextBoxColumn.Name = "ageDataGridViewTextBoxColumn"; // // sexDataGridViewTextBoxColumn // this.sexDataGridViewTextBoxColumn.DataPropertyName = "Sex"; this.sexDataGridViewTextBoxColumn.HeaderText = "Sex"; this.sexDataGridViewTextBoxColumn.Name = "sexDataGridViewTextBoxColumn"; // // likeDataGridViewTextBoxColumn // this.likeDataGridViewTextBoxColumn.DataPropertyName = "Like"; this.likeDataGridViewTextBoxColumn.HeaderText = "Like"; this.likeDataGridViewTextBoxColumn.Name = "likeDataGridViewTextBoxColumn"; // // Form1 // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(531, 278); this.Controls.Add(this.dataGridView1); this.Name = "Form1"; this.Text = "Form1"; this.Load += new System.EventHandler(this.Form1_Load); ((System.ComponentModel.ISupportInitialize)(this.dataGridView1)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.infoModelBindingSource)).EndInit(); this.ResumeLayout(false); } #endregion private System.Windows.Forms.DataGridView dataGridView1; private System.Windows.Forms.BindingSource infoModelBindingSource; private System.Windows.Forms.DataGridViewTextBoxColumn nameDataGridViewTextBoxColumn; private System.Windows.Forms.DataGridViewTextBoxColumn ageDataGridViewTextBoxColumn; private System.Windows.Forms.DataGridViewTextBoxColumn sexDataGridViewTextBoxColumn; private System.Windows.Forms.DataGridViewTextBoxColumn likeDataGridViewTextBoxColumn; } }
まだ回答がついていません
会員登録して回答してみよう