我的WPF应用程序中有一个DataGrid,我希望它包含我的XML文件中的值。 DataGrid如下所示:
<TabItem Header="Datacopy">
<Grid>
<DataGrid x:Name="GrdDatacopy" HorizontalAlignment="Left" Margin="7,7,0,0" VerticalAlignment="Top" Height="320" Width="640">
<DataGrid.Columns>
<DataGridTextColumn DisplayMemberBinding="{Binding Path = Source}" Header="Bron:"></DataGridTextColumn>
<DataGridTextColumn DisplayMemberBinding="{Binding Path = Destination}" Header="Doel:"></DataGridTextColumn>
</DataGrid.Columns>
</DataGrid>
</Grid>
</TabItem>
我的XML:
<DataCopy Dir="H:\O365-Source">
<Row Source="C:\Temp" Destination="Temp" />
<Row Source="C:\Downloads" Destination="Downloads" />
<Row Source="C:\Muziek" Destination="Muziek" />
</DataCopy>
我可以为datagrid创建一个对象
$DatacopySet = @{}
$XmlOffice365.Office365.Datacopy.Row | ForEach {
$DatacopySet.add($_.Source))
$DatacopySet.add($_.Destination))
}
$DatacopySet | ForEach-Object { .................... }
但是当我粘贴在我的整个应用程序崩溃时,它应该是绑定的东西。
如何在数据网格中获取XML密钥并能够编辑这些密钥。
我找到了一些样品,但我无法让它起作用......
PS1脚本 http://poshcode.org/2259
XAML代码: http://poshcode.org/2260
希望有人可以提供帮助,或者是否有其他方法可以在这种设置中轻松编辑和添加值?
问候,保罗
答案 0 :(得分:0)
您可以按以下方式显示xml数据
<Window x:Class="WpfApplication3.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:WpfApplication3"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
Title="MainWindow"
Width="525"
Height="350"
mc:Ignorable="d">
<Window.Resources>
<XmlDataProvider x:Key="XmlDataCopy" XPath="DataCopy">
<x:XData>
<DataCopy xmlns="" Dir="H:\O365-Source">
<Row Destination="Temp" Source="C:\Temp" />
<Row Destination="Downloads" Source="C:\Downloads" />
<Row Destination="Muziek" Source="C:\Muziek" />
</DataCopy>
</x:XData>
</XmlDataProvider>
</Window.Resources>
<Grid>
<DataGrid AutoGenerateColumns="False" ItemsSource="{Binding Source={StaticResource XmlDataCopy}, XPath='Row'}">
<DataGrid.Columns>
<DataGridTextColumn Binding="{Binding XPath='@Destination'}" Header="Destination" />
<DataGridTextColumn Binding="{Binding XPath='@Source'}" Header="Source" />
</DataGrid.Columns>
</DataGrid>
</Grid>
注意:
-XmlDataProvider可以与不同的源一起使用,包括URI
- 表示空的xmlns =&#34;&#34;在xml-snippet中。否则,您很容易遇到名称空间问题。
- 如果XmlDataProvider的Source是内存中的变量,也可以编辑文档。您必须手动调用XmlDocument.Save()。
希望这有点帮助,关于Snowball