2011-11-09 13 views
0

私はWPFでSilverlightでLinQを使用してオブジェクトにXMLをロードしようとしていますが、コンボボックスを埋めたりバインドすることはできません。ComboBoxをSilverlight(WPF)でLINQで塗りつぶし

オブジェクトのコードがある:

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; 

もちろん、貼り付けられたコードhエラーはありませんが、動作しません。 LanguageSelectorは私のコンボです。 linqに問題はありません。問題はコンボボックスをバインドするときです。

私が本当に欲しいのは、次のようなことです: MyComboBox.DataSource = MyClass.name;すべての要素に対して

ありがとうございます! :)

答えて

1

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; 

アンダースコアを削除して申し訳ありません。 :)

+0

訂正されたコードありがとう!そして、もし私が "language_Index"のインスタンスをlinqの選択で満たしたいのであれば、そして、そのlanguage_indexのインスタンスでコンボボックス(languageselector)をロードしようとしたらどうなりますか? :) –

+0

申し訳ありませんが、コードを試しましたが、それは動作しません。たぶん私はXAMLで何かを指定する必要がありますか?ありがとう –

+1

これらのものを表示するには、慎重にItemTemplateを指定する必要があります。例えば。

関連する問題