--------------------------------------------------------------------------------
引用或转载时请保留以下信息:
大可山 [MSN:a3news(AT)hotmail.com]
http://www.zpxp.com http://www.brawdraw.com
萝卜鼠在线图形图像处理
--------------------------------------------------------------------------------
3、使用外部URL链接的XML文件作为数据源
事实上,在上文Windows Presentation Foundation(WPF)中的数据绑定(使用XmlDataProvider作控件绑定) 中,XmlDataProvider的Source属性还可以直接指向你本机的某个XML文件:
<XmlDataProvider x:Key="FavoriteColors" Source="E:/Books/xaml/FavoriteColors.xml" />
我们还可以指向任何标准 URL,这样,我们就可以创建对XML API(如 RSS)的快速访问。
比如,我的BLOG中关于WPF的RSS地址是:http://blog.youkuaiyun.com/johnsuna/category/325343.aspx/rss,下面我使用TextBlock来显示BLOG的标题,用ListBox来显示所有文章的题目。
<Window
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
x:Class="WPFDataBinding.BindingRss"
x:Name="BindingRss1"
Title="Window1"
>
<Canvas x:Name="LayoutRoot">
<StackPanel Height="243.687">
<StackPanel.Resources>
<XmlDataProvider x:Key="MyRSS"
Source="http://blog.youkuaiyun.com/johnsuna/category/325343.aspx/rss" />
</StackPanel.Resources>
<TextBlock x:Name="txtBlockTitle" Text="{Binding Source={StaticResource MyRSS}, XPath=//channel/title}" HorizontalAlignment="Center"
FontWeight="Bold"/>
<ListBox Width="500" Height="300"
ItemsSource="{Binding Source={StaticResource MyRSS}, XPath=//item/title}">
</ListBox>
</StackPanel>
</Canvas>
</Window>
上面 XPath=//channel/title , XPath=//item/title分别对应下面的具体内容,你可以结合起来仔细分析一下。(如果你对XPath的相关细节不够了解,建议你看一下XSLT相关的书或者到以下链接:http://www.w3.org/TR/xpath,http://www.w3schools.com/xpath/default.asp)
这是http://blog.youkuaiyun.com/johnsuna/category/325343.aspx/rss的部分内容:(注意我特别加粗的部分)
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/">
<channel>
<title>Johnson(大可山)的专栏 -</title>
<link>http://blog.youkuaiyun.com/johnsuna/category/325343.aspx</link>
<description />
<dc:language>af</dc:language>
<generator>.Text Version 1.0.1.1</generator>
<image>http://counter.youkuaiyun.com/pv.aspx?id=72</image>
<item>
<dc:creator>大可山</dc:creator>
<title>Windows Presentation Foundation(WPF)中的数据绑定(使用XmlDataProvider作控件绑定)</title>
<link>http://blog.youkuaiyun.com/johnsuna/archive/2007/08/21/1753001.aspx</link>
<pubDate>Tue, 21 Aug 2007 15:59:00 GMT</pubDate>
<guid>http://blog.youkuaiyun.com/johnsuna/archive/2007/08/21/1753001.aspx</guid>
<wfw:comment>http://blog.youkuaiyun.com/johnsuna/comments/1753001.aspx</wfw:comment>
<comments>http://blog.youkuaiyun.com/johnsuna/archive/2007/08/21/1753001.aspx#Feedback</comments>
<slash:comments>0</slash:comments>
<wfw:commentRss>http://blog.youkuaiyun.com/johnsuna/comments/commentRss/1753001.aspx</wfw:commentRss>
<trackback:ping>http://tb.blog.youkuaiyun.com/TrackBack.aspx?PostId=1753001</trackback:ping>
<description><img src ="http://blog.youkuaiyun.com/johnsuna/aggbug/1753001.aspx" width = "1" height = "1" /></description>
</item>
<item>
<dc:creator>大可山</dc:creator>
<title>Windows Presentation Foundation(WPF)中的数据绑定(控件与控件值的绑定)</title>
<link>http://blog.youkuaiyun.com/johnsuna/archive/2007/08/21/1752865.aspx</link>
<pubDate>Tue, 21 Aug 2007 14:51:00 GMT</pubDate>
<guid>http://blog.youkuaiyun.com/johnsuna/archive/2007/08/21/1752865.aspx</guid>
<wfw:comment>http://blog.youkuaiyun.com/johnsuna/comments/1752865.aspx</wfw:comment>
<comments>http://blog.youkuaiyun.com/johnsuna/archive/2007/08/21/1752865.aspx#Feedback</comments>
<slash:comments>0</slash:comments>
<wfw:commentRss>http://blog.youkuaiyun.com/johnsuna/comments/commentRss/1752865.aspx</wfw:commentRss>
<trackback:ping>http://tb.blog.youkuaiyun.com/TrackBack.aspx?PostId=1752865</trackback:ping>
<description>使用类似{Binding ElementName=txtBoxInput,Path=Text}的方式进行控件与控件的绑定<img src ="http://blog.youkuaiyun.com/johnsuna/aggbug/1752865.aspx" width = "1" height = "1" /></description>
</item>
<!-- 还有更多 -->
</channel>
</rss>
下图是显示效果: