<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
<Grid.DataContext>
<XmlDataProvider x:Name="dataxml" XPath="EssenceList/Essence" Source="464.xml"/>
</Grid.DataContext>
和我绑定的大多数简单的texbox像
<TextBox Text="{Binding XPath=/EssenceList/Essence/LinkedEssences/LinkType[1]/LinkedEssence/@GUID}" />
但现在我需要以这种方式绑定一个组合框:
- 文档中的第一个Essence包含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>
此组合框的许多其他可用Essence
我设法将主题列表绑定到组合框
<ComboBox ItemTemplate="{StaticResource rolelistTemplate}" ItemsSource="{Binding XPath=/EssenceList/Essence[@Type]}" />
所以它显示得很好,但我不能将它绑定到我的LinkedEssences。
答案 0 :(得分: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设置为我需要保存的字段。