簡體   English   中英

.NET / C#綁定IList <string> 到DataGridView

[英].NET / C# Binding IList<string> to a DataGridView

我有一個IList<string>從函數返回(作為變量lst)然后我設置然后我

this.dataGridView1.DataSource = lst;

datagrid添加一個標記為Length的列,然后列出每個字符串的長度。 如何讓它只列出字符串?

您確實需要一個具有字符串屬性的對象列表。 使用.NET 3.5,你可以作弊:

.DataSource = list.Select(x=>new {Value = x}).ToList();

否則創建一個虛擬類並手動復制數據...

這是因為DataGridViews顯示了對象的屬性。 在這種情況下,List只有一個屬性“Length”,因此它只能顯示“Lenght”(無論DataType如何)。 您需要創建一個包裝類來實現您想要的(具有“Text”屬性的“MyString”類,然后在您的網格中顯示一個List)。

希望這可以幫助

添加代碼示例

 class MyString
    {
        private string _text;
        public string Text
        { get 
             { 
              return _text; 
             }
            set 
            {
                _text = value; 
            }
        }

    }

'在執行形式

 private List<MyString> foo()
        {
            List<MyString> lst = new List<MyString>();
            MyString one = new MyString();
            MyString two = new MyString();
            one.Text = "Hello";
            two.Text = "Goodbye";
            lst.Add(one);
            lst.Add(two);
            return lst;
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            dataGridView1.DataSource = foo();

        }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM