0
Я хочу добавить колонку программно к моему datagrid и связать его.Программно добавить и привязать столбец DataGrid
Я пробовал следующие примеры в Интернете, но не могу получить данные, которые будут отображаться.
У меня была работа с столбцами, объявленными в xaml.
Вот DataGrid Xaml декларация:
<DataGrid Grid.Row="0" x:Name="dtgMain" AutoGenerateColumns="False" ItemsSource="{Binding}" RowHeight="25" SizeChanged="dtgMain_SizeChanged"></DataGrid>
Вот где я поставил DataContext для DataGrid:
System.Xml.XmlDocument doc = new System.Xml.XmlDocument();
doc.LoadXml(response);
provider.Document = doc;
provider.XPath = "/moo/response/data/load/panel";
dtgMain.DataContext = provider;
Вот где я добавить столбец:
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>
как я уже говорил, этот код работал нормально, когда столбцы были объявлены в xaml. Так что я предполагаю, что проблема заключается в том, что нужно делать с тем, чтобы объявить привязку на datacolumn. Я просто попробовал это, и он все еще не работает. – user589195
@ user589195: Вы правы, я отредактировал свой ответ. –
Я предположил, что, поскольку я использую Xpath для установки моего datacontext, что привязка datacolumn начнется в xml с этой точки? Так будет ли это что-то вроде dc.Binding = new Binding ("/ moo/response/data/load/panel/panelCode"); – user589195