0
WPF를 사용하여 Silverlight에서 LinQ로 개체에 XML을로드하려고 시도했지만 사용자가 콤보 상자를 채우거나 바인딩 할 수 없습니다.Silverlight (WPF)에서 LINQ로 ComboBox 채우기
개체의 코드는 다음과 같습니다
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; 모든 요소에 대해
미리 감사드립니다. :)
수정 된 코드를 보내 주셔서 감사합니다! 그리고 내가 linq 선택으로 채워진 "Language_Index"의 인스턴스를 원한다면 어떻게됩니까? 그리고 language_index의 해당 인스턴스로 콤보 박스 (languageselector)를로드하려고합니까? :) –
미안하지만, 코드를 시도했지만 작동하지 않습니다. 아마 XAML에서 뭔가를 지정해야합니까? thanks –
이런 것들을 표시하려면 ItemTemplate을 지정해야합니다. 예. DataTemplate> ComboBox. ItemTemplate> –