在中建立数据识别的应用程序覆盖
你可以使用ItemTemplate属性给控件({StaticResource RSSTemplate})应用一个模板。最后,当列表框控件中选择的项发生改变的时候,会调用TitleChanged事件(它是在SelectionChanged属性中指定的):
<StackPanel>
<TextBlock ck=\"Left\"
FontSize=\"18\"
FontWeight=\"Bold\" Margin=\"10\"
HorizontalAlignment=\"Left\">
Titles
</TextBlock>
<ListBox HorizontalAlignment=\"Left\"
Margin=\"10,0,10,10\"
Width=\"300\"
Background=\"LightYellow\"
ItemsSource=\"{Binding Source={StaticResource RSSData}, XPath=item}\"
ItemTemplate=\"{StaticResource RSSTemplate}\"
SelectionChanged=\"TitleChanged\" />
</StackPanel>
当我们选中列表框控件中的数据项的时候,应用程序在页面右边显式该数据项的描述信息。在下一步中,你希望显示标题(\"Description\"),它后面紧跟着<DockPanel>元素,这个元素又包含了一个绑定到描述元素({Binding XPath=description})的<TextBlock>元素。第二个<DockPanel>元素用于显示与选中数据项相关的URL({Binding XPath=link}),如图4所示:
<StackPanel>
<TextBlock ck=\"Left\"
FontSize=\"18\"
FontWeight=\"Bold\" Margin=\"10\"
HorizontalAlignment=\"Left\">
Description
</TextBlock>
<DockPanel HorizontalAlignment=\"Left\" Name=\"dpDescription\" Width=\"500\">
<TextBlock Name=\"txtDescription\"
ck=\"Top\"
FontSize=\"Small\"
HorizontalAlignment=\"Left\"
TextWrap=\"wrap\"
全省监测副食品价格 Margin=\"10,0,10,10\"
Background=\"Black\"
Foreground=\"White\"
TextContent=\"{Binding XPath=description}\"
/>
</DockPanel>
<DockPanel HorizontalAlignment=\"Left\"
Name=\"dpURL\"
Width=\"500\"
>
<TextBlock Name=\"txtURL\"
ck=\"Top\"
FontSize=\"Small\"
HorizontalAlignment=\"Left\"
TextWrap=\"wrap\"
TextContent=\"{Binding XPath=link}\"
Margin=\"10,10,10,10\"
Foreground=\"Blue\"/>
</DockPanel>
</StackPanel>
</DockPanel>
</Page>
图4:显示详细描述信息。被选中的RSS项的描述信息和
链接被绑定到TextBlock控件。当用户在列表框中选择项目的时候它们会改变。
最后,你需要完善前面提到的TitleChanged()事件。在这个事件中,当用户选择列表框控件中的某个数据项的时候,你需要改变DataContext属性的dpDescription和dpURL <DockPanel>元素:
Partial Public Class Page1
Inherits Page
Private Sub TitleChanged(ByVal sender As Object, _
ByVal args As SelectionChangedEventArgs)
Dim lstbox As ListBox = sender
If lectedItem IsNot Nothing Then
taContext = lectedItem
taContext = lectedItem
End If
End Sub
End Class
我们已经完成了!按F5测试应用程序。RSS XML文档中的数据项都显示在列表框控件中。你可以点击列表框控件中的数据项,相应的描述信息和URL就会显示在页面右侧(图1所示)。
绑定到外部的XML源
前面的例子演示了如何把XML数据岛绑定到WPF应用程序的多个控件上。在应用程序内使用XML数据岛引起的一个问题是,对XML数据的任何修改都要求修改/编译应用程序。更好的方法是把XML数据存储在外部文件中,在应用程序中引用该文件。例如,你可以把XML数据存储在l文件中,接着可以在应用程序中引用它:
<XmlDataSource x:Key=\"RSSData\" Source=\"l\" XPath=\"/rss/channel\" />
动态地载入XML源
尽管你可以引用外部的XML文件,但是更好的办法可能是从URL动态地载入XML文档。在这个例子中,你可以修改<XmlDataSource>元素:
<XmlDataSource x:Key=\"RSSData\" Source=\"\" XPath=\"/rss/channel\" />
你可以使用下面一些URL试一试,可以发现每次都载入了不同的RSS数据项:
·
·
·
·
进一步改善
在本文中你看到了在WPF中数据绑定是如何进行的。如果你希望进一步改善示例应用程序,可以考虑修改应用程序,允许用户从URL列表中选择一个(代替手动地修改XML文档源)。查看本文来源
西安治疗男科多少钱重庆治疗包皮包茎费用
黄芪生脉饮价格多少钱
- 上一页:在下如何获取回滚段名称计划
- 下一页:在中获得文件的绝对路牛
-
为什么有钱人和穷人都想退出同学群集?背后的原因很现实,很无奈
除此以外我推测了一个奇怪的现象, 明明手机号都换回了好几个, 但是微信...
2024-07-23
-
驻新加坡中国大使馆将开展远程视频公证试点
中新网4年底19日电 据中国人领事新加坡大东交民巷微信公众号消息,自2022年...
2023-11-21
-
苹果VR/AR头盔曝光 传了10年的死讯终于要实现了吗?
【CNMO新闻网】自2019年风生水起的VR/AR概念,到2021年大热的“元时空”。三巨...
2023-11-12
-
消息称华为将于 6 月初释出 Freebuds Pro 2 耳机等新品
IT之家 5 月末 22 日最新消息,视像该网站 @东都数君 透露,三星将于 6 月末初...
2023-10-31
-
千万不要随便穿著肉色的衣服…哈哈哈哈狠狠代入了!
以前的宝子们 有不会一如既往地持续保持好心情呢 如果不会也就让 以前的开...
2023-10-23
-
【中医妇科】肚子大的像男婴竟是巨大肌瘤惹的祸!
嘴巴大的像仰孕 身怀极大脊髓刺毛惹的祸! 本期研究专家: 佟庆 北京中...
2023-10-22