2011-11-03 12 views
1

私のWPFアプリケーションからいくつかのXMLデータにバインドしようとしています。XMLノード名へのバインド

<Item name="Potion" classes="Healing Item" value="200"> 
    <Classes> 
     <Class value="HealingItem" /> 
    </Classes> 
    <Description value="A low quality potion, it restores a small amount of health" /> 
    <Components> 
     <HealingComponent> 
     <BattleHealingComponent> 
      <HPHealingComponent value="500" type="Absolute"/> 
     </BattleHealingComponent> 
     </HealingComponent> 
    </Components> 
    </Item> 

が今ここで問題です:私がバインドしようとしているのXmlElementはこのように見て終わるように、私は、データコンテキストを設定しました。バインドできるXPathクエリは、コンポーネントのサブノードだけを返すことがわかりません。

私はそれがこのような何か行くよ知っている:私はのために使用するものにこだわっている

ItemsSource="{Binding XPath=Components/*/????}" 

を????

このクエリの結果には、 "HealingComponent"と表示されるはずです。オンラインのXPathビジュアライザでさまざまなパラメータを使用して試してみましたが、これを把握することはできません。私は名前について準備ができていますが、それを働かせることはできません。

すべてのヘルプは、おそらくItemTemplateが必要ItemsSourceに加えて

答えて

2

をいただければ幸い、これは動作するはずです:

<ListBox ItemsSource="{Binding XPath=Components/*}"> 
    <ItemsControl.ItemTemplate> 
     <DataTemplate> 
      <TextBlock Text="{Binding Name}"/> 
     </DataTemplate> 
    </ItemsControl.ItemTemplate> 
</ListBox> 

あなたはまたDisplayMemberPathを使用することができます派手な何かをする予定がない場合この場合、バインディングによってNameではなく、はXPathとして解釈されますが、DisplayMemberPathでその種の制御を行うことはできません。

+0

完全に機能しました。ありがとう – Megatron

関連する問題