WPF - динамически привязывать ListView к XML-файлу - PullRequest
1 голос
/ 21 июня 2011

Есть ли способ (с использованием шаблона 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"/>

Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 22 июня 2011

Если я помещу файл log.xml в каталог моего проекта, библиотека логгера запишет в

project/bin/debug/log.xml

пока привязка xaml будет искать log.xml в

project/log.xml

Я решил проблему, установив для свойства файла log.xml значение «Содержимое», а не «Ресурс» .. даже если я действительно не знаю разницы:)

0 голосов
/ 21 июня 2011

Почему бы вам просто не использовать относительные пути? Например, если вы поместили log.xml в каталог данных вашего проекта, просто напишите

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

Обратите внимание, что файл должен иметь build action из "resource". Или, если это "content", тогда установите copy to o/p directory на "copy always". (Ищите разницу между этими двумя в Google)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...