2014-03-12 2 views
0

interop를 한 줄씩 사용하여 단어 문서를 읽었습니다. 이제 XAML 코드에있는 데이터 표에 선을 표시하려고합니다.WPF에서 DataGrid를 표시하는 방법은 무엇입니까?

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


for (int i = 0; i < doc.Sentences.Count; i++) 
{ 
    //string temp = doc.Paragraphs[i + 1].Range.Text.Trim(); 
    string temp = doc.Sentences[i + 1].Text; 
    if (temp != string.Empty) 
    { 
     data.Add(temp); 
     dt.Rows.Add(new object[] { data }); 
    } 
} 
+0

체크 [이 (http://stackoverflow.com/questions/18474761/list-directory-files-in-a- DataGrid) 도움이 될 수도 ..... –

답변

0

당신의 DataTable을 반환 데이터 환경에서 속성을 작성합니다 (데이터 컨텍스트를 가정하는 것은에서 INotifyPropertyChanged 구현) :

당신의 데이터 테이블 속성에 데이터 그리드 바인딩 ItemSource에 대한 XAML에서 그런
private DataTable _aTable; 
    public DataTable aTable 
    { 
     get 
     { 
      return _aTable; 
     } 
     set 
     { 
      _aTable= value; 
      RaisePropertyChanged("aTable"); 
     } 
    } 

:

<DataGrid AutoGenerateColumns="true" ItemsSource="{Binding aTable}" > 
0

XAML에서 dataGrid 선언 :

<DataGrid x:Name="dataGrid"/> 

및 DataTable에 한 번 사용자가 설정할 수 있습니다 가득의 DataView 데이터 그리드의 ItemsSource 등 :

dataGrid.ItemsSource = dt.AsDataView(); 

또는

유형 DataTable의 적절한 뷰 모델에서 속성을 선언하고 여기에 바인딩합니다.

+0

그것은 작동하지 않습니다. 예외 입력 배열을 더 이상 테이블의 열보다 커서입니다. System.argumentException – user3383270

+0

해당 예외가 이미 코드에서 나는이 줄'dt.Rows.Add 새로운 객체 [] {data}); –

0

데이터 테이블을 Grid의 ItemsSource에 바인딩하고 AutoGeneratColumns를 "true"로 설정할 수 있습니다.

[XAML]

<DataGrid AutoGenerateColumns="true" ItemsSource="{Binding dt}"> 

[C 번호]

private DataTable _dt; 
public DataTable dt 
{ 
    get 
    { 
     return _dt; 
    } 
    set 
    { 
     _dt= value; 
    } 
} 

Void Load() 
{ 
    dt.Columns.Add("Text"); 

    for (int i = 0; i < doc.Sentences.Count; i++) 
    { 
    string temp = doc.Sentences[i + 1].Text; 
    if (temp != string.Empty) 
    { 
     data.Add(temp); 
     dt.Rows.Add(new object[] { data }); 
    } 
    } 
} 
관련 문제