質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
87.20%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

解決済

データソースにデータを入れる方法は?

meshkit
meshkit

総合スコア72

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

2回答

1評価

1クリップ

9466閲覧

投稿2018/01/18 02:46

###前提・実現したいこと
前回の質問の続きです。
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; } }

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

まだ回答がついていません

会員登録して回答してみよう

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
87.20%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。