0

私はいくつかのxmlを持っています:

<Test>
  <thing location="home" status="good"/>
  <thing location="work" status="bad"/>
  <thing location="mountains" status="good"/>
</Test>

上のリーフTreeViewは status 属性の値です。ノードは location 属性の値になります。

├──悪い
│.....└──
仕事 └──良い
.......├──家
.......└──山

現在、TreeView(またはTabControl) を手動で入力し、xml を反復処理して、適切なリーフにノードを追加しています。
これはデータバインディングを介して行うことができますか? コンバーターが関与すると思います...
アドバイスをありがとう。

4

1 に答える 1

0

XmlDataSource にバインドすると仮定すると、次の内容で TransformFile を使用できます。

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl">
  <xsl:output method="xml" indent="yes"/>
  <xsl:template match="/Test">
    <Test>
      <good>
        <xsl:for-each select="thing[@status='good']">
           <xsl:element name="{@location}"/>
        </xsl:for-each>
      </good>
      <bad>
        <xsl:for-each select="thing[@status='bad']">
          <xsl:element name="{@location}"/>
        </xsl:for-each>
      </bad>
    </Test>
  </xsl:template>
</xsl:stylesheet>

プロパティを XmlDataSource に追加XPath="/Test/*"して、"Test" ルート要素を削除します。

于 2009-08-17T21:31:04.083 に答える