2009-09-20 1 views
0

아래의 2 개의 별도 코드 블록을 사용하여 설명 할 수있는 이상한 문제가 발생했습니다.데이터 소스를 데이터 테이블로 변환하는 것이 왜 형식화를 방지합니까?

첫 번째 블록을 사용하는 경우 열 5에 통화 형식이 적용된 것을 분명하게 볼 수 있습니다.

문자열 배열이 데이터 테이블에 추가 된 다음 데이터 소스로 사용되는 유일한 차이점 인 두 번째 블록을 사용하면 - 형식이 적용되지 않습니다!

아무에게도이 사실을 설명하고 해결 방법을 제공 할 수 있습니까? 나는 포맷해야 할 대형 datatable을 사용하고 있습니다.

감사합니다.

블록 1 :

string[] list = new string[10]; 

for (int i = 0; i < 10; i++) 
{ 
    list[i] = i.ToString(); 
} 

this.dataGridViewX1.DataSource = list; 
this.dataGridViewX1[0, 5].Style.Format = "C2"; 

블록 2 :

string[] list = new string[10]; 

for (int i = 0; i < 10; i++) 
{ 
    list[i] = i.ToString(); 
} 

DataTable dt = new DataTable(); 
dt.Columns.Add(); 

for (int i = 0; i < list.Length; i++) 
{ 
    DataRow dr = dt.NewRow(); 
    dr[0] = list[i]; 

    dt.Rows.Add(dr); 
} 

this.dataGridViewX1.DataSource = dt; 
this.dataGridViewX1[0, 5].Style.Format = "C2"; 

답변

0

DataColumn DataType을 설정하지 않아도됩니까?

DataColumn col1; 
col1.DataType = Type.GetType("System.DateTime"); // or other type 
+0

그것은 모두 문자열입니까? –

0

처음 바인딩 datatables를 이용한다. 반사경을 사용하여 그곳에서 일어난 일을 파악하십시오.