我有一个WPF中的DataGrid,我想填充一个XML文件的结果,但我不确定如何去做。如何绑定XML到DataGrid - WPF
我已经成功填充了具有各种元素属性的列,但是我希望为每个分配给我的XML文件中的元素的属性设置单独的列。
我的XML格式如下:
<?xml version="1.0"?>
-<Roles User="Mr 1">
<Role Info="Information 1" Name="Role1"> </Role>
<Role Info="Information 2" Name="Role2"> </Role>
</Roles>
等等......随着各种用户,用分配给每个角色。
我VB.Net代码如下:
Private Sub DataGridTest_Loaded(sender As Object, e As RoutedEventArgs) Handles Me.Loaded
Dim xDoc = XDocument.Load("\Roles.xml")
Dim xRoles = xDoc...<Role>
MyDataGrid.DataContext = xRoles
End Sub
我的XAML如下:
<Grid Style="{StaticResource ContentRoot}">
<DataGrid Name="MyDataGrid" ItemsSource="{Binding}" AutoGenerateColumns="False" HorizontalAlignment="Stretch" Height="500" >
<DataGrid.Columns>
<DataGridTextColumn Binding="{Binding [email protected]}" Header="Role" />
<DataGridTextColumn Binding="{Binding [email protected] }" Header="Information" />
</DataGrid.Columns>
</DataGrid>
</Grid>
虽然这并填充DataGrid,似乎与相关联的所有属性填充它xRole。我可以理解这种情况正在发生,但我无法弄清楚如何得到我要查找的结果,即'Info'和'Name'作为标题,以及Attribute Values作为其自己列中的单元格。
我曾尝试使用属性值填充列表,手动创建列,然后将列表绑定到列 - 这可能是正确的方法吗? - 但我只能弄清楚如何将1列表绑定到其中一列。是否可以有两个单独的列表并将它们分别绑定到它们自己的列?
我意识到我可能在这里问2个单独的问题 - 道歉。我发现信息稀疏的具体问题 - 特别是有关VB.Net
在此先感谢!
:_DataGrid无法自动生成列时源是XML数据。在这种情况下,创建一个自定义的Columns collection_ – dkozl 2014-08-29 19:54:26
谢谢。你能解释一下如何将各个属性绑定到不同的列上吗?在将属性输入到列表中并将该列表绑定到1列方面,我已经取得了一些成功,但我还没有弄清楚如何处理多列。谢谢 – 2014-08-29 19:56:11
您是否尝试使用XPath绑定'DataGrid'列,如{{Binding XPath = @ Info}'? – dkozl 2014-08-29 19:57:54