Привязка данных из файла XML [UWP] - PullRequest
0 голосов
/ 28 ноября 2018

У меня есть XML-файл с некоторыми данными, которые я хотел бы привязать к текстовым блокам.Код ниже не добавляет никакого контента в текстовые блоки.Что я делаю не так.Любой совет?

XAML:

<GridView x:Name="DataGrid1">
            <GridView.ItemTemplate>
                <DataTemplate>
                    <Grid  Background="AliceBlue" Width="300" Height="200">
                        <StackPanel Orientation="Vertical">
                            <TextBlock Text="{Binding Title}"></TextBlock>
                            <TextBlock Text="{Binding Category}"></TextBlock>
                        </StackPanel>
                    </Grid>
                   </DataTemplate>
            </GridView.ItemTemplate>
        </GridView>

C #

string XMLPath = Path.Combine(Package.Current.InstalledLocation.Path, "booksData/data.xml");
            XDocument loadedD = XDocument.Load(XMLPath);

            var newData = from query in loadedD.Descendants("element")
                          select new Book
                          {
                              Title = (string)query.Attribute("title"),
                              Category = (string)query.Attribute("category")

                          };
            DataGrid1.ItemsSource = newData;

XML:

<books>
    <element>
      <category>Thriller</category>
      <description>In The Green Line, </description>
      <id>1</id>
      <image>images/greenLine.jpg</image>
      <price>10.50</price>
      <title>The Green Line</title>
    </element>

1 Ответ

0 голосов
/ 29 ноября 2018

Приведенный ниже код не добавляет никакого контента в текстовые блоки.Что я делаю не так.

Проблема заключается в том, что title и category - это Element книги, но не Attribute.Поэтому вам нужно изменить ваш linq, как показано ниже:

var newData = from query in loadedD.Descendants("element")
select new Book
{
  Title = (string)query.Element("title"),
   Category = (string)query.Element("category")    
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...