Заполнение ComboBox с помощью LINQ на Silverlight (WPF) - PullRequest
0 голосов
/ 10 ноября 2011

Я пытаюсь загрузить XML в объект с LinQ в Silverlight с WPF, но я не могу заполнить или привязать свой комбинированный список.

Код объекта:

    public class Language_Index
{
    public string Prefix { get; set; }
    public string Status { get; set; }
    public string Name { get; set; }
}

Мой XML:

<languages_index>
<item prefix="VBNET" name="Visual Basic .NET" status="enabled" />
<item prefix="CS" name="C#" status="disabled" />

, а код для загрузки и представления данных::

            string XmlString = e.Result; // Got all your XML data in to a string 

        XDocument elem = XDocument.Load(XmlReader.Create(new StringReader(XmlString)));

        var feed_language_index = from nod in elem.Descendants("languages_index")
                                  select new Language_Index
                                  {
                                      Name = nod.Element("item").Attribute("name").Value,
                                      Status = nod.Element("item").Attribute("status").Value,
                                      Prefix = nod.Element("item").Attribute("prefix").Value

                                  };

        LanguageSelector.ItemsSource = feed_language_index;

Конечно, вставленный код не имеет ошибок, но не работает.LanguageSelector это моя комбо.В linq нет НИКАКОЙ проблемы, проблема в том, когда я связываю выпадающий список:)

Что я действительно хочу, так это попытаться сделать что-то вроде: MyComboBox.DataSource = MyClass.name;за каждый элемент.

заранее спасибо!:)

1 Ответ

1 голос
/ 10 ноября 2011

Я бы посоветовал вам попытаться преобразовать LINQ в список и проверить окно вывода VS на наличие ошибок привязки.

    string XmlString = e.Result;

    XDocument elem = XDocument.Load(XmlReader.Create(new StringReader(XmlString)));

    var feedLanguages = 
            (from nod in elem.Descendants("languages_index")
            select new Language_Index
            {
                    Name = nod.Element("item").Attribute("name").Value,
                    Status = nod.Element("item").Attribute("status").Value,
                    Prefix = nod.Element("item").Attribute("prefix").Value
            }).ToList();

    LanguageSelector.ItemsSource = feedLanguages;

Извините, что удалил подчеркивания.:)

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