所以我有一个树视图绑定到一个动态加载的XML文件。使用XPath正确绑定来自XML的注释节点
然后,在另一个面板中,我有一个绑定到TreeViewItems的列表视图。
行为是当用户单击树中的某个项目时,任何属性或文本都显示在ListView中。
给出下面的XML
<Root>
<Child Name="Attribute">
<!--Comment-->
<Content>Some text</Content>
</Child>
</Root>
我在树上,这正是我想要得到这个。
这是结合我使用的TreeViewItems绑定到ListView
<Binding XPath="@*|text()|comment()" />
可正常工作,但并不像我想:)。
它将注释显示为其父项的属性,因此如果单击树节点Child
,我会看到Content
和Comment
。
但如果我点击树的Comment
节点本身我什么也没得到
这不是我想要的。我更喜欢如果点击Child
节点,我只能得到属性和文本 - 而不是通讯,但如果我点击Comment
节点,那么我应该在ListView中显示评论的值。
我很确定秘密在于xPath欺骗,但是我一直没能把它弄清楚。
更改到
<Binding XPath="@*|text()|//comment()" />
结合添加注释到Comment
节点(好)的价值,但在树以及所有其他节点(坏)。我试过在绑定上抛出一些not()
条件,但无济于事。
更改到
<Binding XPath="@*|text()|../comment()" />
结合更接近,因为它当时正确地结合注释节点的评论,但ASLO到包含注释的节点的任何其他的孩子。
我需要什么(我觉得)这是改变成类似
<Binding XPath="@*|text()|../comment()[not(NodeType != Comment)]" />
的一些方式,则仅选择此评论它当前上下文节点是一条评论。 但是这个例子失败了。
在这一点上,我只是随意尝试新事物,所以我想现在是时候要问:)
任何人都可以提出一个结合,将完成我已(希望充分)描述?
哈!如此美丽而简单。对于迟到的回复很抱歉,忙于其他项目。谢谢! –