gpt4 book ai didi

C# 将 XML 数据绑定(bind)到 ListView WPF

转载 作者:数据小太阳 更新时间:2023-10-29 01:45:37 25 4
gpt4 key购买 nike

我已经搜索了很多,也尝试了很多,但我找不到为什么它不起作用。我正在尝试通过我的 xaml 中的数据绑定(bind)将 XML 文件输出到 ListView 。

<Window
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:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:Kundenstrom"
xmlns:Properties="clr-namespace:Kundenstrom.Properties" x:Class="Kundenstrom.MainWindow"
mc:Ignorable="d"
Title="Kundenstrom" Height="232.5" Width="631" Icon="Hopstarter-Sleek-Xp-Basic-User-Group.ico">
<Window.Resources>
<XmlDataProvider x:Key="Kundenstromdaten" Source="kunden.xml" XPath="Kundenstrom/Kunden"/>
</Window.Resources>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="11*"/>
<ColumnDefinition Width="77*"/>
<ColumnDefinition Width="11*"/>
<ColumnDefinition Width="40*"/>
<ColumnDefinition Width="21*"/>
<ColumnDefinition Width="357*"/>
</Grid.ColumnDefinitions>
<TabControl x:Name="tabControl" Grid.ColumnSpan="6" TabStripPlacement="Top" Margin="10,0,10,10">
<TabItem Header="Eintragen">
<Grid Background="#FFE5E5E5">
<TextBox x:Name="txtGrund" Height="44" Margin="10,10,10,0" TextWrapping="Wrap" VerticalAlignment="Top"/>
<ComboBox x:Name="cmbTyp1" HorizontalAlignment="Left" Margin="10,59,0,0" VerticalAlignment="Top" Width="287">
<ComboBoxItem Content="Laden"/>
<ComboBoxItem Content="Telefon"/>
<ComboBoxItem Content="Mail"/>
</ComboBox>
<ComboBox x:Name="cmbTyp2" Margin="302,58,10,0" VerticalAlignment="Top">
<ComboBoxItem Content="Anfrage"/>
<ComboBoxItem Content="Auftrag"/>
<ComboBoxItem Content="Abholung"/>
</ComboBox>
<Button x:Name="btnEintragen" Content="Eintragen" HorizontalAlignment="Left" Margin="10,86,0,0" VerticalAlignment="Top" Width="287" Height="36" Click="btnEintragen_Click"/>
</Grid>
</TabItem>
<TabItem Header="Kunden anzeigen">
<Grid Background="#FFE5E5E5">
<ListView Margin="10" ItemsSource="{Binding Source={StaticResource Kundenstromdaten}}">
<ListView.View>
<GridView>
<GridViewColumn DisplayMemberBinding="{Binding XPath=Grund}" Header="Grund" />
<GridViewColumn DisplayMemberBinding="{Binding XPath=Typ1}" Header="Kundentyp" />
<GridViewColumn DisplayMemberBinding="{Binding XPath=Typ2}" Header="Anfragetyp" />
<GridViewColumn DisplayMemberBinding="{Binding XPath=Zeitpunkt}" Header="Zeitpunkt" />
</GridView>

</ListView.View>
</ListView>
</Grid>
</TabItem>
</TabControl>

</Grid>
</Window>

我的 XML 文件看起来像这样

<?xml version="1.0" encoding="utf-8"?>
<Kundenstrom>
<Kunden>
<Grund>hfth</Grund>
<Typ1>Laden</Typ1>
<Typ2>Auftrag</Typ2>
<Zeitpunkt>04.04.2016 15:01:38</Zeitpunkt>
</Kunden>
<Kunden>
<Grund>testestsetsetse</Grund>
<Typ1>Laden</Typ1>
<Typ2>Anfrage</Typ2>
<Zeitpunkt>04.04.2016 16:57:59</Zeitpunkt>
</Kunden>
</Kundenstrom>

数据未显示在 ListView 中。我需要额外的 cs 代码吗?

最佳答案

不需要额外的 cs 代码。

XmlDataProvider 的 Source 属性是一个 Uri,而不是文件路径。所以如果你只写“kunden.xml”,你的应用程序正在应用程序资源中寻找这个文件。要将此文件添加到应用程序资源,您应将 xml 文件添加到您的项目(添加 -> 现有项目)。在文件中,其属性将“Build Action”设置为“Resource”

如果您希望您的应用程序从独立文件加载(即 kunden.xml 应位于您的 exe 所在的同一文件夹中),您应该:

  • 将 xml 复制到输出文件夹:手动或自动,即将 kunden.xml 的“生成操作”设置为“无”,但将“复制到输出目录”设置为“如果更新则复制”
  • 将 Source=”kunden.xml” 更改为 Source="pack://siteoforigin:,,,/kunden.xml"

如果要使用文件的绝对名称,只需使用 Source=“file:///D:/my/absolute/path/kunden.xml”即可。

关于C# 将 XML 数据绑定(bind)到 ListView WPF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36424300/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com