У меня есть XML-файл, как показано ниже. Я планирую связать содержимое XML-файла с Datagrid в WPF.WPF, XML Datagrid Binding
<?xml version="1.0" encoding="utf-8"?>
<ProductData xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<PurchaseOrderLine>
<ProductItem>
<LineNumber>1</LineNumber>
</ProductItem>
</PurchaseOrderLine>
Так я разрабатываю два простых классов для PurchaseOrderLine и ProductItem ниже
class PurchaseOrderLine {
public ProductItem productItem { get; set; }}
class ProductItem{
public int LineNumber { get; set; }}
После этого, когда я пытался получить к нему доступ в XAML что-то, как показано ниже, я не мог получить LINENUMBER подробности, почему что? Я что-то пропустил? На самом деле, пожалуйста, дайте мне знать, как получить доступ к дочерним элементам в xml?
<DataGrid AutoGenerateColumns="False" Name="dataGrid" ItemsSource="{Binding Path=Elements[PurchaseOrderLine]}" Height="214" Width="657">
<DataGrid.Columns>
<DataGridTextColumn Header="Line Number" Binding="{Binding Path = Element[ProductItem.LineNumber].Value}" />
</DataGrid.Columns>
Я загрузив файл XML динамически
var productList = XElement.Load(FileName);
this.dataGrid.DataContext = productList;
Вы попробовали строчный «ProductItem» в своем втором привязке (то есть «productItem»)? XAML чувствителен к регистру к моему воспоминанию. Вы получаете какие-либо исключения System.Data в окне вывода? – BradleyDotNET
@ LordTakkera, это правильный способ доступа к элементам, таким как ProductItem.LineNumber. Потому что я попробовал с productItem.LineNumber тоже. Он не работает – RobinAtTech
Обычно это то, что вы бы сделали (с нижним регистром, учитывая ваше имя свойства). Я не уверен, почему это будет какое-то другое чтение XML-документа. Вы пытались удалить «Элемент» со второго привязки? Если объект уже является контекстом данных, он может больше не быть XElement и, следовательно, не нуждается в этой части. Исключения System.Data могут помочь вам здесь. – BradleyDotNET