2010-06-17 123 views
2
<EssenceList> 
    <Essence GUID="464"> 
    <Properties> 
     <Property Name="Name"> 
     <value>mt-1232-1. (1-1-3)</value> 
     </Property> 
    </Properties> 
    <Characteristics> 
     <Characteristic GUID="78"> 
     <value>gadget</value> 
     </Characteristic> 
     <Characteristic GUID="79"> 
     <value>measures</value> 
     </Characteristic> 
    </Characteristics> 
    <LinkedEssences> 
     <LinkType Type="ObjGroup"> 
     <LinkedEssence GUID="369" /> 
     </LinkType> 
     <LinkType Type="ObjGroupProp" /> 
     <LinkType Type="RoleObject"> 
      <LinkedEssence GUID="5747"/> 
     </LinkType> 
    </LinkedEssences> 
    </Essence> 
... 
    <Essence GUID="5747" Type="Role"> 
    <Properties> 
     <Property Name="Name"> 
     <value>UKPG-22</value> 
     </Property> 
     <Property Name="TagPrefix"> 
     <value>UKPG22</value> 
     </Property> 
     <Property Name="useParentTagPrefix"> 
     <value>0</value> 
     </Property> 
    </Properties> 
    </Essence> 
... 
    <Essence GUID="5748" Type="Role"> 
    </Essence> 
... 

示例是一个包含数据库数据的xml文件。现在我需要将其绑定到某些领域... 我使用XMLDataProvider这里将组合框绑定到XML(wpf)

<Grid.DataContext> 
     <XmlDataProvider x:Name="dataxml" XPath="EssenceList/Essence" Source="464.xml"/> 
    </Grid.DataContext> 

和mostof简单texboxes我喜欢绑定

<TextBox Text="{Binding XPath=/EssenceList/Essence/LinkedEssences/LinkType[1]/LinkedEssence/@GUID}" /> 

,但现在我需要这样一个绑定组合框: - 文档中的第一个实质包含LinkedEssences,包含<LinkType Type="RoleObject"><LinkedEssence GUID="5747"/> - 在文件下面有它的完整描述包含name属性,我需要

<Essence GUID="5747" Type="Role"> 
    <Properties> 
     <Property Name="Name"> 
     <value>UKPG-22</value> 
     </Property> 
     <Property Name="TagPrefix"> 
     <value>UKPG22</value> 
     </Property> 
     <Property Name="useParentTagPrefix"> 
     <value>0</value> 
     </Property> 
    </Properties> 
    </Essence> 

和许多其他可用的香精此组合框

我设法结合thems的列表,组合框

<ComboBox ItemTemplate="{StaticResource rolelistTemplate}" ItemsSource="{Binding XPath=/EssenceList/Essence[@Type]}" /> 

,使其显示得很好,但我不能把它绑定到我的LinkedEssences 。

回答

0

我已经通过这个

<ComboBox SelectedValuePath="@GUID" SelectedValue="{Binding XPath=/EssenceList/Essence[1]/LinkedEssences/LinkType[3]/LinkedEssence[1]/@GUID}" ItemTemplate="{StaticResource rolelistTemplate}" ItemsSource="{Binding XPath=/EssenceList/Essence[@Type]}" IsSynchronizedWithCurrentItem="True" /> 

,所以我只设置SelectedValuePath到属性和的SelectedValue到外地,我需要将其保存)

解决了这个问题根本