2010-06-17 5 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> 
... 

dans l'exemple est un fichier xml avec des données de la base de données. maintenant je dois le lier à certains champs ... -je utiliser le XmlDataProvider iciLiaison Combobox vers XML (wpf)

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

et mostof texboxes simples i lie comme

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

mais maintenant je dois lier un combobox de cette façon: - la première Essence dans le document contient LinkedEssences, qui contient <LinkType Type="RoleObject"> et <LinkedEssence GUID="5747"/> - dans le document ci-dessous il y a une description complète de ce qui contient la propriété NOM i besoin

<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> 

et beaucoup d'autres disponibles pour cette Essences combobox

i réussi à lier la liste de ses ouvrages à COMBOBOX

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

il affiche bien, mais je ne peux pas le lier à mes LinkedEssences .

Répondre

0

je l'ai résolu le problème simplement en ce

<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" /> 

donc je viens de mettre SelectedValuePath à un attribut et SelectedValue au champ je dois l'enregistrer)