1

孩子们,我们又来了,又一个露营者在 WPF 数据绑定周围的树林里迷路了。这是攀登数据绑定倒冰墙的富有成果的一天,但我对此束手无策。我没有找到任何示例或 SNOOP 的数量正在帮助我找到我的问题。希望你们三个数据绑定摇滚明星可以帮助兄弟!:)

XML 文件- 更改了面孔和名称以保护无辜者

    <?xml version="1.0" encoding="utf-8" ?>
<Mappings>
  <Mapping>
    <Class1>WonderBread</Class1>
    <Class2>Tortilla</Class2>
    <Properties>
      <Property>
        <Jx>name</Jx>
        <Dyn>Name</Dyn>
        <Create>1</Create>
        <Update>0</Update>
      </Property>
      <Property>
        <Jx>Juice</Jx>
        <Dyn>Juice</Dyn>
        <Create>1</Create>
        <Update>0</Update>
      </Property>
      <Property>
        <Jx>Fred</Jx>
        <Dyn>Fred</Dyn>
        <Create>1</Create>
        <Update>0</Update>
      </Property>
      <Property>
        <Jx>Love</Jx>
        <Dyn>Love</Dyn>
        <Create>1</Create>
        <Update>0</Update>
      </Property>
    </Properties>
  </Mapping>
</Mappings>

我如何加载此 XML 文件并将其设置到我的数据网格 DataContext 中。在构造函数中完成。这可以正确加载,通过 SNOOP 我可以在 DataContext 中看到 XML 文件。

    // load the ObjectMappingXML file and set as Gridview Context
    XEClassMappings = XElement.Load(ConfigurationManager.AppSettings["ClassMappingXML"]);
    dgMapping.DataContext = XEClassMappings;

显示内容的 XAML 代码

        <DataGrid x:Name="dgMapping" ItemsSource="{Binding Path=Elements[Property]}" Height="569">
            <DataGrid.Columns >
                <DataGridTextColumn Header="JxAPI Prop" Binding="{Binding Path=Element[Jx].Value}"/>
                <DataGridTextColumn Header="Dyn Prop" Binding="{Binding Path=Element[Dyn].Value}"/>
            </DataGrid.Columns>
        </DataGrid>

以所有神圣的名义,我错过了什么?8 小时充满希望的 F5 让我束手无策……

4

1 回答 1

0

您将不得不访问属性元素。将您的 ItemsSource 绑定更改为以下内容:

<DataGrid x:Name="dgMapping" ItemsSource="{Binding Path=Element[Mapping].Element[Properties].Elements[Property]}" Height="569">

它会起作用的。

希望能帮助到你

于 2013-09-04T19:28:05.260 回答