【问题标题】:How to display datagrid in WPF?如何在 WPF 中显示数据网格?
【发布时间】:2014-03-12 05:09:02
【问题描述】:

我正在逐行阅读使用互操作的 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 });
    }
}

【问题讨论】:

  • 检查 this 可能会有所帮助.....

标签: c# .net wpf xaml datagrid


【解决方案1】:

在您的数据上下文中创建一个属性,返回您的 DataTable(假设您的数据上下文实现了 INotifyPropertyChanged):

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

然后在您的数据网格的 xaml 中将 ItemSource 绑定到您的 dataTable 属性:

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

【讨论】:

    【解决方案2】:

    在 XAML 中声明 dataGrid:

    <DataGrid x:Name="dataGrid"/>
    

    一旦您的 DataTable 被填满,您可以将其 DataView 设置为 DataGrid 的 ItemsSource

    dataGrid.ItemsSource = dt.AsDataView();
    

    DataTable 类型的正确 ViewModel 中声明属性并绑定到它。

    【讨论】:

    • 它不起作用。抛出异常输入数组比表中的列长。System.argumentException
    • 我猜你的代码中已经存在这个异常dt.Rows.Add(new object[] { data });?
    【解决方案3】:

    您可以将 Datatable 绑定到 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 });
        } 
      }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-03-24
      • 2011-07-08
      • 1970-01-01
      • 2021-06-16
      • 1970-01-01
      • 1970-01-01
      • 2014-02-08
      相关资源
      最近更新 更多