我有一個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