2010-06-17 3 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 파일입니다. 지금은 내가 여기XML (wpf)에 결합 콤보 박스

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

XMLDataProvider를 사용 ... 일부 필드에 바인딩 할 필요 mostof 간단한 texboxes은 내가

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

처럼 결합하지만 지금은 이런 식으로 콤보 상자를 바인딩해야합니다 - 내가

필요 문서에서 아래의 NAME 속성을 포함하고 그것에 대한 자세한 설명이 있습니다 - 문서의 첫 번째 에센스, LinkedEssences을 포함 <LinkType Type="RoleObject"><LinkedEssence GUID="5747"/> 에 포함

이 콤보에 대한

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

많은 다른 사용 가능한 에센스는 내가

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

그래서 잘 표시를 콤보하는 thems의 목록을 바인딩 관리,하지만 난 그것을 내 LinkedEssences에 바인딩 할 수 없습니다 .

답변

0

그래서 난 그냥 내가 그것을 저장하는 데 필요한 필드에 속성 및 SelectedValue에 SelectedValuePath 설정이

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

)

하여 문제를 간단하게 해결했습니다