簡體   English   中英

如何在WPF中顯示數據網格?

[英]How to display datagrid in WPF?

我正在逐行閱讀互操作的word文檔。 現在,我希望這些行顯示在XAML代碼中的數據網格上。

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

在返回數據表的數據上下文中創建一個屬性(假設您的數據上下文實現了INotifyPropertyChanged):

    private DataTable _aTable;
    public DataTable aTable
    {
        get
        {
            return _aTable;
        }
        set
        {
            _aTable= value;
            RaisePropertyChanged("aTable");
        }
    }

然后在數據網格的xaml中,將ItemSource綁定到dataTable屬性:

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

在XAML中聲明dataGrid:

<DataGrid x:Name="dataGrid"/>

並填充完DataTable之后,您可以將其DataView設置為DataGrid的ItemsSource

dataGrid.ItemsSource = dt.AsDataView();

要么

DataTable類型的適當ViewModel中聲明屬性並綁定到該屬性。

您可以將Datatable綁定到網格的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 });
    } 
  }
}

暫無
暫無

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

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