Есть пара предметов:
Прежде всего, убедитесь, что для вашего файла SubjectList.xml свойство Build Action имеет значение «Content».
Во-вторых, удалите материал 'XPath' из ItemsSource вашего ListBox
, что вызывает некоторые проблемы. Вам нужно всего лишь ItemsSource="{Binding Source={StaticResource SubjectData}}"
В-третьих, и это главное, ваш XML-файл настроен не совсем правильно. После внесения двух изменений, указанных выше, замените ListBox
на DataGrid
для быстрого теста, и это выявит проблему с файлом XML:
Это довольно трудно увидеть на этом скриншоте, но посмотрите столбец «Значение». Оно пустое. Ваш XML-файл настроен так, что ваши данные хранятся в «Атрибутах», в частности, в атрибуте «Имя», как вы можете видеть, просматривая столбец «OuterXML». XMlDataProvider по умолчанию захватывает Value
s в файле XML. У вас их нет.
Лучшим способом хранения ваших XML-данных может быть:
<Subjects>
<Subject>Subject1</Subject>
<Subject>Subject2</Subject>
<Subject>Subject3</Subject>
<Subject>Subject4</Subject>
</Subjects>
Если вы сделаете это, вы получите ожидаемый результат: