将组合框绑定到XML(wpf) mt-1232-1。(1-1-3) 小工具 措施 ... UKPG-22 UKPG22 0 ... ...

将组合框绑定到XML(wpf) mt-1232-1。(1-1-3) 小工具 措施 ... UKPG-22 UKPG22 0 ... ...,wpf,xml,data-binding,combobox,Wpf,Xml,Data Binding,Combobox,示例中是一个xml文件,其中包含来自数据库的数据。现在我需要将它绑定到一些字段。。。 我在这里使用XMLDataProvider <EssenceList> <Essence GUID="464"> <Properties> <Property Name="Name"> <value>mt-1232-1. (1-1-3)</value> </Property>

示例中是一个xml文件,其中包含来自数据库的数据。现在我需要将它绑定到一些字段。。。 我在这里使用XMLDataProvider

<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>
...
    <Grid.DataContext>
        <XmlDataProvider x:Name="dataxml" XPath="EssenceList/Essence" Source="464.xml"/>
    </Grid.DataContext>

而且大多数简单的texbox我都喜欢

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

但是现在我需要这样绑定一个组合框: -文档中的第一个要点包含LinkedSenses,其中包含
-在下面的文档中,有一个完整的描述,其中包含我需要的NAME属性

    <Grid.DataContext>
        <XmlDataProvider x:Name="dataxml" XPath="EssenceList/Essence" Source="464.xml"/>
    </Grid.DataContext>
<TextBox Text="{Binding XPath=/EssenceList/Essence/LinkedEssences/LinkType[1]/LinkedEssence/@GUID}" />

UKPG-22
UKPG22
0
和许多其他可用于此组合框的精华

    <Grid.DataContext>
        <XmlDataProvider x:Name="dataxml" XPath="EssenceList/Essence" Source="464.xml"/>
    </Grid.DataContext>
我设法将主题列表绑定到combobox

    <Grid.DataContext>
        <XmlDataProvider x:Name="dataxml" XPath="EssenceList/Essence" Source="464.xml"/>
    </Grid.DataContext>
  <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>


所以它显示得很好,但我无法将它绑定到我的LinkedSessions

我就这样解决了这个问题

    <Grid.DataContext>
        <XmlDataProvider x:Name="dataxml" XPath="EssenceList/Essence" Source="464.xml"/>
    </Grid.DataContext>
 <ComboBox ItemTemplate="{StaticResource rolelistTemplate}"  ItemsSource="{Binding XPath=/EssenceList/Essence[@Type]}" />


因此,我只需将SelectedValuePath设置为一个属性,并将SelectedValue设置为我需要保存它的字段)

我已经简单地解决了这个问题

    <Grid.DataContext>
        <XmlDataProvider x:Name="dataxml" XPath="EssenceList/Essence" Source="464.xml"/>
    </Grid.DataContext>
 <ComboBox ItemTemplate="{StaticResource rolelistTemplate}"  ItemsSource="{Binding XPath=/EssenceList/Essence[@Type]}" />

因此,我只需将SelectedValuePath设置为属性,将SelectedValue设置为需要保存的字段)

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