Как получить XML-атрибут для отображения в WPF ComboBox? - PullRequest
0 голосов
/ 08 апреля 2011

У меня есть простой XML-документ:

<?xml version="1.0" encoding="utf-8" ?>
  <languages default="en">
    <language code="en" name="English" />
    <language code="de" name="Deutsch" />
    <language code="es" name="Espanol" />
    <language code="fr" name="Français" />
</languages>

чьи language узлы я объявил как ItemsSource для ComboBox в C #:

userLanguageComboBox.ItemsSource = languagesXml.Descendants("language");

Дисплеи ComboBox определены как таковые в XAML:

<ComboBox Name="userLanguageComboxBox" DisplayMemberPath="@name" />

Проблема в том, что ComboBox генерирует четыре пустые записи, похоже, он не находит атрибут (если я пропущу свойство DisplayMemberPath, четыре узла language отобразятся в виде текста):

Screenshot of the Combobox

Как я могу это исправить?

(я использую .NET 4.0.)

1 Ответ

3 голосов
/ 08 апреля 2011

Используя LINQ to XML, вы можете получить все атрибуты имени, используя:

var names = from n in XElement.Load("xml.xml").Elements("language").Attributes("name") select n.Value;

Свяжите это с ComboBox

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