Привязать TreeView к XMLDocuent неизвестной глубины - PullRequest
1 голос
/ 29 июня 2011

Я пытаюсь связать XMLDocument, который выглядит как

<?xml version="1.0" encoding="utf-8"?>
<root>
  <topic id="INDEX">
    <title>Index</title>
    <url>...</url>
    <topic id="Result">
      <title>Result</title>
    ...

, где глубина вложения неизвестна.Как мне связать это с TreeView в WPF?

Ответы [ 2 ]

0 голосов
/ 01 июля 2011

Я действительно взломал его ... Ключ должен был использовать

<HierarchicalDataTemplate.ItemsSource>
            <Binding XPath="child::node()[@id]" />
 </HierarchicalDataTemplate.ItemsSource>

, который отфильтровывает любой узел без атрибута id, и триггер, такой как

<HierarchicalDataTemplate.Triggers>
        <DataTrigger Binding="{Binding Path=NodeType}" Value="Element">
                <Setter TargetName="tb" Property="Text" Value="{Binding XPath=title}" />
        </DataTrigger>
 </HierarchicalDataTemplate.Triggers>

, где tbэто простое текстовое поле.

0 голосов
/ 29 июня 2011

Посмотрите на HierarchicalDataTemplates . Это то, что обычно используется в сочетании с TreeView.

Я раньше не использовал их с данными XML (загружаете ли вы свой XML в XDocument?), Но похоже, что использование XMLDataProvider вместе с HierarchicalDataTemplates - это способ пойти .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...