WPF binding XML 文件

swanestle 2014-03-11 10:35:05
大家好
我有一个xml文件作为数据源绑定到combobox
格式如下,并且属性设置 build action = none, Copy to Output Directory = Copy if newer

<?xml version="1.0" encoding="utf-8" ?>
<TeamMembers>
<TeamMember DisplayName="D1" NickName="N1" />
<TeamMember DisplayName="D2" NickName="N2" />
</TeamMembers>


在资源字典Resource\MasterData.xaml中

<XmlDataProvider x:Key="TeamData"
Source="/Data/TeamMembers.xml"
XPath="/TeamMembers/TeamMember"></XmlDataProvider>

在Application中也声明了这个资源

<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="Resource\MasterData.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>


绑定的xaml:

<ComboBox Name="cboIterations1"
DataContext="{StaticResource TeamData}"
ItemsSource="{Binding XPath=/TeamMembers/TeamMember}"
DisplayMemberPath="@NickName"
SelectedValuePath="@DisplayName"
SelectedIndex="0"
Width="200">
</ComboBox>


此时在design窗口我可以直接看到combobox中已经有数据了。
问题是:编译后运行,combobox中却没有数据
...全文
75 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
Bonjour-你好 2014-03-11
  • 打赏
  • 举报
回复
Application中声明那里的斜杠反了吧
    <Application.Resources>
        <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>
                <ResourceDictionary Source="Resources/MasterData.xaml" />
            </ResourceDictionary.MergedDictionaries>
        </ResourceDictionary>
    </Application.Resources>
其余的跟你提供的代码一模一样,运行后没问题。
swanestle 2014-03-11
  • 打赏
  • 举报
回复
问题解决了,不是应为斜杠的原因。 把xml文件的属性 build action = Content
小恒丶 2014-03-11
  • 打赏
  • 举报
回复
斜杠反了

8,735

社区成员

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

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