XmlDataProvider Source无法加载外部xml文件

jlennonxzy 2021-09-25 10:28:01
<Window x:Class="HierarchicalDataTemplate.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:HierarchicalDataTemplate"
        mc:Ignorable="d"
        Title="HierarchicalDataTemplate" Height="300" Width="300">
    <Window.Resources>
        <!--数据源-->
        <XmlDataProvider x:Key="ds" Source="Data.xml" XPath="Data/Grade"/>
        <!--年级模板-->
        <HierarchicalDataTemplate DataType="Grade" ItemsSource="{Binding XPath=Class}">
            <TextBlock Text="{Binding XPath=@Name}"/>
        </HierarchicalDataTemplate>
        <!--班级模板-->
        <HierarchicalDataTemplate DataType="Class" ItemsSource="{Binding XPath=Group}">
            <RadioButton Content="{Binding XPath=@Name}" GroupName="gn"/>
        </HierarchicalDataTemplate>
        <!--小组模板-->
        <HierarchicalDataTemplate DataType="Group" ItemsSource="{Binding XPath=Student}">
            <CheckBox Content="{Binding XPath=@Name}"/>
        </HierarchicalDataTemplate>
    </Window.Resources>
    <Grid>
        <TreeView Margin="5" ItemsSource="{Binding Source={StaticResource ds}}"/>
    </Grid>
</Window>

这是xaml文件,下面是外部的Data.xml文件,书上说或放在项目根目录,我试了不行,必须用绝对路径,书上就是相对路径,直接source=文件名。

<?xml version="1.0" encoding="utf-8"?>
<Data xmlns="">
    <Grade Name="一年级">
        <Class Name="甲班">
            <Group Name="A组"/>
            <Group Name="B组"/>
            <Group Name="C组"/>
        </Class>
        <Class Name="乙班">
            <Group Name="A组"/>
            <Group Name="B组"/>
            <Group Name="C组"/>
        </Class>
    </Grade>
    <Grade Name="二年级">
        <Class Name="甲班">
            <Group Name="A组"/>
            <Group Name="B组"/>
            <Group Name="C组"/>
        </Class>
        <Class Name="乙班">
            <Group Name="A组"/>
            <Group Name="B组"/>
            <Group Name="C组"/>
        </Class>
    </Grade>
</Data>

 

...全文
597 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
jlennonxzy 2021-09-28
  • 打赏
  • 举报
回复

已搞定,手动在属性栏,重新制定一下就可以了。

u010879331 2024-06-24
  • 举报
回复
@jlennonxzy 具体怎么弄得 相对路径我现在还是搞不定。绝对路径是可以的。大哥告知下

8,757

社区成员

发帖
与我相关
我的任务
社区描述
WPF/Silverlight相关讨论
社区管理员
  • WPF/Silverlight社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧