2009-07-09 5 views
7

IList<string> 함수에서 (변수를 lst로) 반환하고.NET/C# IList <string>을 DataGridView에 바인딩

DataGrid 길이라는 레이블이 지정된 열을 추가 한 다음 각 문자열의 길이를 나열합니다. 어떻게 문자열을 나열하도록합니까?

+1

당신은 IList 만 문자열이 포함되어 있습니까 실행중인 양식에서 '

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

코드 예제

추가

을하는 데 도움이? 또는 다른 형식 인 ''을 포함하고 있습니까? – Nate

+0

어 ... 그는 IList라고 말했습니다. ... – Clyde

답변

13

에는 문자열 속성이있는 개체 목록이 정말로 필요합니다. .NET 3.5을 사용하면 속이 수 :

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

그렇지 않으면 더미 클래스를 생성하고 수동으로 데이터를 복사 ... DataGridViews이 개체의 속성을 보여 때문이다

+0

정확하게 내가 찾고있는 것, 익명의 타입은 이런 종류의 일에 좋습니다. –

+0

그러나 목록 값을 변경하면 DataGridView가 업데이트되지 않습니다 ... – Pedro77

1

합니다. 이 경우 List에는 하나의 "Length"속성 만 있으므로 "Data"에 관계없이 "Lenght"만 표시 할 수 있습니다. 원하는 것을 얻기 위해 래퍼 클래스를 만들어야합니다 ("Text"속성을 가진 "MyString"클래스, 그리드에 List 표시).

희망이

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(); 

     } 
관련 문제