【问题标题】:WPF - Bind a ListView to a .xml file dynamicallyWPF - 将 ListView 动态绑定到 .xml 文件
【发布时间】:2011-06-20 20:14:49
【问题描述】:

有没有办法(使用 MVVM 模式)将 ListView 动态绑定到 xml 文件? 实际上 ListView 绑定到静态路径,例如:

C:\DocumentsAndSettings\blabla\morebla\log.xml 

我需要类似的东西

AppPath\log.xml

这是我的代码: 在 View.xaml 中:

<ListView ItemsSource="{Binding Source={StaticResource logDataSource}, ...

在 App.xaml 中:

        <XmlDataProvider x:Key="logDataSource" 
                     Source="C:\DocumentsAndSettings\blabla\morebla\log.xml" 
                     d:IsDataSource="True"/>

我想要这样的东西:

        <XmlDataProvider x:Key="logDataSource" 
                     Source="AppPath\log.xml" 
                     d:IsDataSource="True"/>

提前谢谢你。

【问题讨论】:

    标签: c# wpf xml data-binding listview


    【解决方案1】:

    为什么不直接使用相对路径?例如,如果您将log.xml 放在项目的数据目录中,只需编写

    <XmlDataProvider x:Key="logDataSource" Source="data/log.xml" />
    

    请注意,该文件应具有 build action"resource"。 或者,如果它是 "content",则将 copy to o/p directory 设置为 "copy always"。 (在 Google 上搜索这两者的区别)

    【讨论】:

    • 在您的情况下,您似乎已将 log.xml 放在项目的根目录中。所以试试&lt;XmlDataProvider x:Key="logDataSource" Source="log.xml" /&gt;
    【解决方案2】:

    如果我把log.xml文件放在我的项目目录下,logger库会写在

    project/bin/debug/log.xml
    

    而 xaml 绑定将在其中查找 log.xml

    project/log.xml
    

    我解决了将 log.xml 文件的属性设置为“内容”而不是“资源”的问题..即使我真的不知道区别:)

    【讨论】:

      猜你喜欢
      • 2017-01-02
      • 2018-11-10
      • 2017-09-29
      • 1970-01-01
      • 2010-10-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多