将XDocument绑定到WPF并仍然使用XPath?

将XDocument绑定到WPF并仍然使用XPath?,wpf,c#-3.0,Wpf,C# 3.0,这是一个由两部分组成的问题 1) 是否可以在不使用ObjectDataProvider的情况下将XDocument绑定到WPF控件 下面是XmlDocument工作的代码片段,但我不能使用XDocument XmlDataProvider provider = new XmlDataProvider(); provider.XPath = "/Parent/Child"; provider.Document = mydoc; // xmldocument works fin

这是一个由两部分组成的问题

1) 是否可以在不使用ObjectDataProvider的情况下将XDocument绑定到WPF控件

下面是XmlDocument工作的代码片段,但我不能使用XDocument

   XmlDataProvider provider = new XmlDataProvider();
    provider.XPath = "/Parent/Child";
    provider.Document = mydoc; // xmldocument works fine.
    Binding binding = new Binding();
    binding.XPath = "InnerChild/Name";
    binding.Source = provider;
    decisionCb.SetBinding(ComboBox.ItemsSourceProperty, binding);
我需要保留使用XPath绑定的能力,因为我的Xml文档是动态生成的。我想使用XDocument和LINQ:(

2) 是否可以在Xaml中的XElement中使用XPath扩展函数

<DataTemplate DataType="{}{http://myns}Child" >
<StackPanel Orientation="Horizontal">
<!-- This wont work because Element cannot accept XPath -->
<TextBlock Text="{Binding Path=Element[{http://myns}InnerChild/Name]}" /> 
</StackPanel>
</DataTemplate>


第一个问题的答案是“是的,你可以”。
关于这个论点的一篇好文章是Beatrix Stollniz'One:
关于第二个答案,我说“不,这是不可能的”。XLinq体系结构是利用IEnumerable(基本Linq)扩展构建的,因此XPath是不必要的,而且(比方说)不够充分。

干杯

例如,是否可以将XDocument绑定到datagrid并仍然使用XPath?文章已经不存在了:(这就是为什么你更喜欢在这里讨论答案,而不是仅仅链接到它。