{ get; set; } って?つけるとdataGrid.ItemsourceにListをそのまま表示できるようになった

イラスト C#

{ get; set; }とは

メンバ変数の値の取得や変更を行う為のメソッド(アクセサー)

クラス内での変数定義に利用

こんな感じで利用する

        public string id { get; set; }

        public string title { get; set; }

        public string message { get; set; }

        public string navi_url { get; set; }

        public string navi_title { get; set; }

{ get; set; }つけないと

listを作成して

datagrid.ItemSource に指定しても

  DataGrid.ItemsSource = messageList;

カラムに何も表示されない。

DataTableでデータを取得し、これをリストのプロパティに格納しても反映されないんだな。

                foreach(DataRow dr in dt.Rows)
                {
                    var m = new message();
                    if (dr["id"] != DBNull.Value) m.id = (string)dr["id"];
                    if (dr["title"] != DBNull.Value) m.title = (string)dr["title"];
                    if (dr["message"] != DBNull.Value) m.message = (string)dr["message"];
                    if (dr["navi_title"] != DBNull.Value) m.navi_title = (string)dr["navi_title"];
                    if (dr["navi_url"] != DBNull.Value) m.navi_url = (string)dr["navi_url"];

                    li.Add(m);
                }

この状態でもイミディエイトウィンドウでlistに設定された要素を表示させると

li[0].id
"7gA9QBUZNXZMAQm7bhpJsJASIK32kEvR"

ちゃんと値としては格納されている

のに、dataGrid.ItemSourceにリストを指定すると、ちゃんと表示されない

{ get; set; }つけると

{ get; set; }をつけると

        public string id { get; set; }

        public string title { get; set; }

        public string message { get; set; }

        public string navi_url { get; set; }

        public string navi_title { get; set; }

これがちゃんと機能してデータが表示されるようになる

 DataGrid.ItemsSource = messageList;

コメント

タイトルとURLをコピーしました