0

XElement ドキュメント。

<forms xmlns="">
  <form>
    <id>1361</id>
    <name>TEST3</name>
  </form>
  <form>
    <id>1658</id>
    <name>TEST4</name>
  </form>
  <form>
    <id>1975</id>
    <name>Mac New Patient</name>
  </form>
  <form>
    <id>2209</id>
    <name>Test Atlantic</name>
  </form>
  <form>
    <id>2565</id>
    <name>Rice Creek Test</name>
  </form>
</forms>

コードビハインド

 XElement xmlForms = data.GetXmlForm();
 var ElementsList = from c in xmlForms.Element("Forms").Descendants("form")
 select new { Name = c.Element("name").Value, ID = c.Element("id").Value };

 cBox_NewPat.DataContext = ElementsList; 
 cBox_NewPat.DisplayMemberPath = "name";
 cBox_NewPat.SelectedValuePath = "id";

XElement から WPF Combobox に data(name, id) をバインドする必要があります。何らかの理由で、XML から要素リストにデータを取得することすらできません。

4

2 に答える 2

0

ここにはいくつかのものが欠けているようです (null の結果は別として、以下で説明します)。

  1. コンボボックスに ItemsSource プロパティを設定する必要があります。

    cBox_NewPat.ItemsSource = ElementsList
    
  2. あなたが使用する必要があります

    cBox_NewPat.DisplayMemberPath = "Name"; 
    

    それ以外の

    cBox_NewPat.DisplayMemberPath = "name";
    

    匿名型プロパティは「名前」ではなく「名前」と呼ばれるためです。SelectedValuePath と同じ

  3. GetXmlForm メソッドで何を行っているかを示してください。ここで問題が発生します。XElement.Parse(xmlString) を実行する場合は、forms 要素から名前空間属性 (xmlns) を削除すると機能します。また、使用する必要があります

    xmlForms.Descendants("form")
    

    それ以外の

    xmlForms.Element("forms").Descendants("form")
    
于 2013-04-02T18:59:04.453 に答える
0

プロパティ名は大文字と小文字が区別されます。

変更する必要があります

cBox_NewPat.DisplayMemberPath = "name";
cBox_NewPat.SelectedValuePath = "id";

cBox_NewPat.DisplayMemberPath = "Name";
cBox_NewPat.SelectedValuePath = "ID";

匿名タイプに一致します。

于 2013-04-02T18:55:09.833 に答える