2013-03-25 4 views
0

두 개의 DataGridView 하나가 매우 간단하고 다른 하나는 다른 열 유형과 복잡합니다. 제 아이디어는 데이터를 XML에 저장하고 다시 시작할 때 파일에서로드하는 것입니다. WinForms를 사용하여 C#의 DataGridView에서 데이터를 저장하십시오.

DataTable dtusers = new DataTable("Users"); 
    DataColumn col1 = new DataColumn("ID"); 
    DataColumn col2 = new DataColumn("Key"); 
    dtUsers.Columns.Add(col1); 
    dtUsers.Columns.Add(col2); 
    if (File.Exists("user.xml")) 
     dtUsers.ReadXml("user.xml"); 
    dgvAccounts.DataSource = dtUsers;  
    .... 
    dtUsers.WriteXml("user.xml"); 

그러나 DataTable에 내가 데이터 소스에서 얻을 싶은 다른 DataGridView에에

이제까지 널 (dgvActions가있는 DataGridView가) : 간단한 하나 는 아무 문제 없습니다 (dgvAccounts는 DataGridView에이다)

DataGridViewTextBoxColumn dgvcolA5 = new DataGridViewTextBoxColumn(); 
    DataGridViewComboBoxColumn dgvcolA6 = new DataGridViewComboBoxColumn(); 
    dgvActions.Columns.Add(dgvcolA5); 
    dgvActions.Columns.Add(dgvcolA6); 
    DataTable dtActions = (DataTable)dgvActions.DataSource; 
    dtActions.WriteXML("actions.xml"); 

나는 또한 DataTable을 미리 작성하고 dgvActions.DataSource로 추가하려고했지만 결과는 동일합니다.

DataGridView 용 DataTable을 만들거나 데이터를 저장하고로드하는 다른 방법을 제안 해 주실 수 있습니까?

감사

앙드레

답변

0

당신이 첫 번째 예 (다음 실 거예요 데이터 소스에서 널 (null) 데이터 테이블을 얻을)에서처럼 데이터 소스로 설정 한 후 데이터 테이블 첫째을 설정하고 약 :

DataTable dtActions = new DataTable(); 
    //Set DataTable columns here 
    dtActions.WriteXML("actions.xml"); 
    dgvActions.DataSource = dtActions; 
+0

나는 이것을 시도했지만 DGV에 직접 열을 추가 할 경우 효과가 없다. 또한 DT에 똑같은 열 이름을 추가하려고했습니다. 편집하기 전에 바인딩하거나 저장하려고 시도하기 전에 DataTable이 비어있는 효과가 없습니다. –

+0

DGV'AutoGenerateColumns' 속성을 true로 설정할 수 있습니까? 그런 다음'DataTable'에 컬럼을 만들어야하고'DataSource'를 설정할 때 DGV로 이어져야합니다. – jzworkman

+0

사실로 설정하면 기회가 없습니다. 내가 그렇게하고 DataTable에 열을 추가 할 경우에만 -이 경우 DT 열 옆에 DGV 열이 있습니다. –

관련 문제