【发布时间】:2016-06-01 08:20:28
【问题描述】:
我有一组 xml 文件。 文件总是这样构建的:
<?xml version="1.0" encoding="UTF-8"?>
<Data>
<Row>
<halfproducten ID="105">Digitale bestanden van papieren zeekaarten en 1800 serie</halfproducten>
<formaat ID="106">PDF, PS, SHAPE, CARIS NTX/ASCII*, GEOTIFF, S57*</formaat>
<datum_validiteit ID="107">Meest recente editie</datum_validiteit>
<geografische_grenzen ID="108">Karteringsgebied</geografische_grenzen>
</Row>
<Row>
<halfproducten ID="109">Fragmenten van bovengenoemde bestanden</halfproducten>
<formaat ID="110">PDF, PS, SHAPE, CARIS NTX/ASCII*, GEOTIFF, S57*</formaat>
<datum_validiteit ID="111">Meest recente editie</datum_validiteit>
<geografische_grenzen ID="112">Karteringsgebied</geografische_grenzen>
</Row>
<Row>
<halfproducten ID="113">Minuutbladen</halfproducten>
<formaat ID="114">Papier</formaat>
<datum_validiteit ID="115">
</datum_validiteit>
<geografische_grenzen ID="116">Karteringsgebied</geografische_grenzen>
</Row>
<Row>
<halfproducten ID="117">Tracings</halfproducten>
<formaat ID="118">PDF</formaat>
<datum_validiteit ID="119">Meest recent</datum_validiteit>
<geografische_grenzen ID="120">Karteringsgebied</geografische_grenzen>
</Row>
<Row>
<halfproducten ID="121">Bathymetrie-bestanden</halfproducten>
<formaat ID="122">ASCII, x-y-z (20 x 20)</formaat>
<datum_validiteit ID="123">Meest recent</datum_validiteit>
<geografische_grenzen ID="124">Karteringsgebied</geografische_grenzen>
</Row>
<Row>
<halfproducten ID="125">Object-selecties data bestanden:;Wrakken/Obstructies;Lichten;Boorplatforms/Boorputten;Boeien/Bakens</halfproducten>
<formaat ID="126">Papier, ASCII, HOB, S57, SHAPE, GEOTIFF, GML</formaat>
<datum_validiteit ID="127">Actueel</datum_validiteit>
<geografische_grenzen ID="128">Nederlands Continentaal Plat + Territoriale zee</geografische_grenzen>
</Row>
<Row>
<halfproducten ID="129">Maritieme (zone)grenzen (UNCLOS)</halfproducten>
<formaat ID="130">ASCII, SHAPE, KML</formaat>
<datum_validiteit ID="131">Actueel</datum_validiteit>
<geografische_grenzen ID="132">Continentaal Plat + Territoriale zee van Nederland, het Caraibisch deel van het Koninkrijk der Nederlanden</geografische_grenzen>
</Row>
</Data>
这里数据和行元素总是存在的,标签元素总是不同的标签名,标签的数量总是不同的。 只有 Row 元素都有相同的子元素,只是内部文本不同。
我想将此 xml 文件绑定到我的 DataGrid,以便如果 DataGrid 中的某些内容发生更改,它会在 xml 文件中自动更改。
到目前为止,我有这个:
<Grid.DataContext>
<XmlDataProvider x:Name="xmlDataProvider"/>
</Grid.DataContext>
(我的 DataGrid 在 Grid 中)
<DataGrid AutoGenerateColumns="True" Name="DataGridXml" SelectionMode="Extended"
SelectionUnit="CellOrRowHeader" CanUserSortColumns="False"
CanUserReorderColumns="False" CanUserAddRows="False" CanUserDeleteRows="False"
VirtualizingStackPanel.IsVirtualizing="False" ItemsSource="{Binding}">
代码隐藏:
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(path);
XmlDataProvider dataProvider = xmlDataProvider;
dataProvider.Document = xmlDoc;
dataProvider.XPath = "Data/Row";
使用以上所有代码,我的解决方案都可以工作,它还绑定到我的数据网格,只是它绑定到 Xml-Element 的属性,而不是将标签绑定到列。
所以说清楚,我想要的是这个:
__________________________________________
| Tag1 | Tag2 | Tag3 |
|-------------|-------------|-------------|
|Lerum Ipsum11|Lerum Ipsum12|Lerum Ipsum13|
|-------------|-------------|-------------|
|Lerum Ipsum21|Lerum Ipsum22|Lerum Ipsum23|
|-------------|-------------|-------------|
提前感谢您帮助我;)
【问题讨论】:
-
使用数据集:DataSet ds = new DataSet(); ds.ReadXml(路径); dataProvider dataProvider = ds.Tables[0];
-
我试试,谢谢!
标签: c# xml wpf binding datagrid