gpt4 book ai didi

wpf - 使用 XPath 正确绑定(bind)来自 xml 的注释节点

转载 作者:行者123 更新时间:2023-12-03 15:38:14 26 4
gpt4 key购买 nike

所以我有一个绑定(bind)到动态加载的 xml 文件的 TreeView 。

然后,在另一个面板中,我有一个绑定(bind)到 TreeViewItems 的 ListView 。

行为是当用户单击树中的项目时,任何属性或文本都会显示在 ListView 中。

给定以下 xml

<Root>
<Child Name="Attribute">
<!--Comment-->
<Content>Some text</Content>
</Child>
</Root>

我把这个放在我的树上,这正是我想要的。

enter image description here

这是我用来将 TreeViewItems 绑定(bind)到 ListView 的绑定(bind)
<Binding XPath="@*|text()|comment()" />

这按预期工作,但不是我想要的:)。

它将评论呈现为其父级的属性,因此如果我单击树节点 Child , 我会看到 ContentComment .

enter image description here

但是如果我点击 Comment树中的节点本身我什么也没得到

enter image description here

这不是我想要的。我更喜欢点击 Child节点,我只得到属性和文本——不是通讯,但如果我点击 Comment节点,那么我应该在 ListView 中显示评论的值。

我很确定秘诀在于 xPath 诡计,但我一直没能把它弄好。

将绑定(bind)更改为
<Binding XPath="@*|text()|//comment()" />

将 Comment 的值添加到 Comment节点(好),但树中的每个其他节点也是如此(坏)。我试过扔一些 not()条件上绑定(bind)但无济于事。

将绑定(bind)更改为
<Binding XPath="@*|text()|../comment()" />

更接近了,因为它随后将评论正确绑定(bind)到评论节点,但也绑定(bind)到包含评论的节点的任何其他子节点。

我需要的(我认为)是某种将其更改为类似的方式
<Binding XPath="@*|text()|../comment()[not(NodeType != Comment)]" />

也就是说,如果当前上下文节点是评论,则仅选择此评论。
但是这个例子失败了。

在这一点上,我只是在随机尝试,所以我想是时候问了:)

任何人都可以提出一个可以完成我(希望充分)描述的绑定(bind)吗?

最佳答案

试试这个:

<Binding XPath="@*|text()|self::comment()" />

关于wpf - 使用 XPath 正确绑定(bind)来自 xml 的注释节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19050430/

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