2011-01-18 9 views
1

に結合するXMLコンボボックスのデータソースにXMLをバインドしようと、私はエラーを取得していますが、「複雑なデータバインディングは、データ・ソースのIListまたはIListSourceのいずれかとして受け入れます。コンボボックス

XDocument obj = XDocument.Load("Managers.xml"); 

comboBox1.DisplayMember = "ManagerDesig"; 
comboBox1.ValueMember = "ManagerID"; 
comboBox1.DataSource = obj.Descendants("manager").Select(x => new 
{ 
    ManagerDesig = x.Attribute("desig").Value, 
    ManagerID = x.Attribute("id").Value 
}); 

マネージャ

<managers> 
    <manager id="123" desig="CEO" /> 
    <manager id="234" desig="CFO" /> 
    <manager id="456" desig="CIO" /> 
</managers> 

が助けてください.XML

答えて

3

してみてください。

comboBox1.DataSource = obj.Descendants("manager").Select(x => new 
{ 
    ManagerDesig = x.Attribute("name").Value, 
    ManagerID = x.Attribute("id").Value 
}) 
.ToList();//convert to list 
+0

は、実際にそれが私の側から間違いだった、...非常に – AbrahamJP

1

最初に、「名前」属性を取得しているのに対して、「id」属性と「desig」属性のみが定義されています。

第二に、以下のようなToList拡張メソッドを使用します。

comboBox1.DataSource = obj.Descendants("manager").Select(x => new 
{ 
    ManagerDesig = x.Attribute("name").Value, 
    ManagerID = x.Attribute("id").Value 
}).ToList(); 
+0

こんにちはvolpav、ありがとうございました。 TheVillageIdiotが解決策を投稿している間、私はその質問を編集した。 – AbrahamJP