C# 以编程方式添加和绑定DataGrid列

C# 以编程方式添加和绑定DataGrid列,c#,wpf,xml,data-binding,datagrid,C#,Wpf,Xml,Data Binding,Datagrid,我想以编程方式将一列添加到我的datagrid并绑定它 我在网上试过下面的例子,但不能得到数据显示出来 我确实让它处理xaml中声明的列 以下是datagrid Xaml声明: <DataGrid Grid.Row="0" x:Name="dtgMain" AutoGenerateColumns="False" ItemsSource="{Binding}" RowHeight="25" SizeChanged="dtgMain_SizeChanged"></DataGrid&

我想以编程方式将一列添加到我的datagrid并绑定它

我在网上试过下面的例子,但不能得到数据显示出来

我确实让它处理xaml中声明的列

以下是datagrid Xaml声明:

<DataGrid Grid.Row="0" x:Name="dtgMain" AutoGenerateColumns="False" ItemsSource="{Binding}" RowHeight="25" SizeChanged="dtgMain_SizeChanged"></DataGrid>
下面是我添加列的位置:

DataGridTextColumn dc = new DataGridTextColumn();
            dc.Binding = new Binding("panelCode");
            dc.Header = "Job Number";
            dtgMain.Columns.Add(dc);
下面是xml的一个示例:

<moo>
  <response>
    <data>
      <load count="2">true
        <panel index="10">
          <panelCode>100072
          </panelCode>
        </panel>
      </load>
    </data>
  </response>
</moo>

真的
100072

在我看来,您的列绑定在应该使用XPath时没有使用

dc.Binding = new Binding() { XPath = "panelCode" };

在我看来,您的列绑定没有在应该使用的时候使用
XPath

dc.Binding = new Binding() { XPath = "panelCode" };

就像我说的,当在xaml中声明列时,这段代码运行良好。所以我猜问题与我在datacolumn上声明绑定的方式有关。我只是尝试了一下,但仍然不起作用。我假设,因为我使用Xpath设置了我的datacontext,所以datacolumn的绑定将从此点开始在xml中开始?那么它是否会像dc.Binding=newbinding(“/moo/response/data/load/panel/panelCode”)@user589195:顺便检查一下。@user589195:查看我的编辑。每一行中的源对象都是一个XmlElement,如果要绑定xml,需要XPath。正如我所说,当在xaml中声明列时,这段代码工作正常。所以我猜问题与我在datacolumn上声明绑定的方式有关。我只是尝试了一下,但仍然不起作用。我假设,因为我使用Xpath设置了我的datacontext,所以datacolumn的绑定将从此点开始在xml中开始?那么它是否会像dc.Binding=newbinding(“/moo/response/data/load/panel/panelCode”)@user589195:顺便检查一下。@user589195:查看我的编辑。每行中的源对象都是XmlElement,如果要绑定xml,则需要XPath。