2011-08-15 1 views
0

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

Вот мой 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» должным образом отформатирован и при загрузке ошибок нет. Я не понимаю, почему ничего не отображается после установки контекста данных.

ответ

0

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

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

+0

Ура, это был трюк. 2 часа моей жизни Я никогда не вернусь: D. Я должен начать передавать этот материал в память. – Ultratrunks

 Смежные вопросы

  • Нет связанных вопросов^_^