我有一堆代码使用XPath属性来处理数据绑定到XMLDocument。我想从我的程序中删除XMLDocument并使用XDocument和XElement以及LINQ。 (目前的程序是一个使用两者的混乱。)
有没有办法可以通过绑定到XElement来替换我的XAML中的数据绑定,而不必重写所有绑定表达式?我想解决方案将使用XPathSelectElement(s),但我不清楚如何。
理想情况下,我使用像
这样的代码this.DataContext = xElement;
并保持或轻微改变
<TextBox Text="{Binding XPath=path/to/child/@field}" />
重要提示:这与TextBox无关。我有更复杂的UserControls,用XPath绑定构建自己。
研究: Bind XDocument to WPF and still use XPath?说它无法完成,但我不相信。我想象一下XNode上的扩展方法或者XPath可以工作的东西。
我还没有找到关于这个主题的任何其他内容。
如果无法在XAML中完成,那么您是否可以提出另一种方法,即返工过多。
答案 0 :(得分:0)
自上周以来,我没有找到满意的答案,正在进行重建对话。
我发现XmlDataProvider键在XmlDocument中的SelectNodes()上起作用,而ObjectDataProvider则用于XElement。
可能我可以将SelectNodes等效为扩展方法,关键是以与Elements()相同的方式使用它,你去哪里
<TextBox Text="{Binding Path=XElementSelectNodes[path/to/child].Value}" />
这是我的工作假设,但仍然在努力。