2009-11-03 54 views
2

這是一個2部分的問題。將XDocument綁定到WPF並仍然使用XPath?

1)是否有可能將XDocument綁定到WPF控件而不使用ObjectDataProvider?

這裏是我的代碼,其中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); 

我需要保留,因爲在飛行中產生我的XML文檔使用XPath結合的能力。我想使用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> 

回答

2

的回答第一個問題是:「是的,你可以」。
關於這個論點的一篇好文章是Beatrix Stollniz的一篇:link text
關於第二個答案,我說「不,這是不可能的」。 XLinq體系結構是利用IEnumerable(基本Linq)擴展的優勢構建的,所以XPath將不必要,並且(比方說)不夠用。
乾杯

+0

所以,例如是否可以將XDocument綁定到數據網格並仍然使用XPath? – ARZ 2012-01-04 04:41:49

相關問題