2011-11-03 94 views
1

我想綁定到我的WPF應用程序的一些XML數據。我已經設置了數據上下文,這樣我試圖綁定到的XmlElement最終看起來像這樣:綁定到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> 

現在,這裏的問題。我無法弄清楚我可以綁定的XPath查詢將只返回組件子節點。

我知道它會去是這樣的:

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

我卡在使用什麼????

此查詢結果應顯示「HealingComponent」我試過在線XPath可視化器上使用各種不同的參數,但我無法弄清楚這一點。我準備好了名字(),但我似乎無法讓它工作。

任何幫助,將不勝感激

回答

2

除了ItemsSource你可能需要一個ItemTemplate,這應該工作:

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

如果你不打算做任何幻想,你也可以使用DisplayMemberPath ,儘管在這種情況下綁定確保Name而不是解釋爲XPath,但您可能沒有使用DisplayMemberPath進行那種控制。

+0

工作完美。謝謝 – Megatron