Простое связывание данных XML с WPF TreeView с использованием XElement - PullRequest
0 голосов
/ 16 августа 2011

Прошло много времени с тех пор, как мне пришлось возиться с синтаксисом, чтобы фактически подключить набор данных XML с помощью XElement к WPF TreeView.Я попытался воссоздать довольно простой пример, но в TreeView ничего не отображается.

Вот мой XAML

<Window.Resources>
    <HierarchicalDataTemplate ItemsSource="{Binding Path=Elements}" x:Key="ViewEditTreeTemplate">
        <StackPanel Orientation="Horizontal" Margin="1">
            <Label x:Name="ElementHeaderLabel" Content="{Binding Path=Name.LocalName}" />
        </StackPanel>
    </HierarchicalDataTemplate>
</Window.Resources>


<Grid>
    <TreeView  Name="DataTree" ItemsSource="{Binding Source={StaticResource ViewEditTreeTemplate}}" Height="160"  Width="176" />
</Grid>

А вот код позади.

XElement Element = XElement.Load("test.xml");
DataTree.DataContext = Element;

Файл «test.xml» правильно отформатирован, и при его загрузке ошибок нет.Я не понимаю, почему ничего не отображается после установки контекста данных.

1 Ответ

0 голосов
/ 16 августа 2011

Вы не установили ItemTemplate TreeView (вы, кажется, случайно установили его как ItemsSource), и вы не можете неявно применять шаблоны к данным XML, делая их ресурсом (далее вы устанавливаете ключ, который предотвращает либо способ).

Я думаю, что в коде позади вас следует установить ItemsSource вместо DataContext, это должен быть либо список корневых элементов, либо список из одного элемента, содержащий только корневой элемент.

...