silverlight   发布时间:2022-05-04  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Silverlight 教程第五部分:用 ListBox 和 DataBinding 显示列表数据 (木野狐译)大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

【原文地址】Silverlight Tutorial Part 5: Using the ListBox and DataBinding to Display List Data 【原文发表日期】 Friday, February 22, 2008 5:51 AM 这是8个系列教程的第5部分,这个系列示范如何使用 Silverlight 2 的 Beta1 版本来创建一个简单的 Digg 客户端应

【原文地址】Silverlight Tutorial Part 5: Using the ListBox and DataBinding to Display List Data
【原文发表日期】 Friday,February 22,2008 5:51 AM

这是8个系列教程的第5部分,这个系列示范如何使用 Silverlight 2 的 Beta1 版本来创建一个简单的 Digg 客户端应用。这些教程请依次阅读,将有助于您理解 Silverlight 的一些核心编程概念。

用 ListBox 和 DataBinding 显示我们的 Digg 故事

前面我们使用了 DataGrid 控件来显示我们的 Digg 故事。当我们想用多列的格式来显示@L_801_6@时,它很适合。然而对我们的 Digg 应用程序而言,也许我们想稍微改变一下页面显示方式,让它看起来不太像网格,而更像一个列表。好消息是,这很容易实现 - 并且我们不需要改变任何程序代码

首先我们将 DataGrid 控件替换为 <ListBox> 控件。我们保持原有的控件名称 ("StoriesList"):

Silverlight 教程第五部分:用 ListBox 和 DataBinding 显示列表数据 (木野狐译)

 

重新运行一下程序,搜索故事,ListBox显示搜索结果如下:

Silverlight 教程第五部分:用 ListBox 和 DataBinding 显示列表数据 (木野狐译)

你可能觉得奇怪 - 为什么每个条目都变成了 "DiggSample.DiggStory"? 这是因为我们把 DiggStory 对象绑定给了 ListBox(而绑定的认行为会调用这些对象的 ToString() 方法)。如果我们想改用每个 DiggStory 对象的 title 属性显示条目,可以设置 ListBox 的 DisplaymemberPath 属性

Silverlight 教程第五部分:用 ListBox 和 DataBinding 显示列表数据 (木野狐译)

这样做之后的效果如下:

Silverlight 教程第五部分:用 ListBox 和 DataBinding 显示列表数据 (木野狐译)

如果要每次显示不止一个值,或者定制每个条目的布局,我们可以覆盖 ListBox 控件的 ItemTemplate,并提供一个自定义的 DataTemplate. 然后在这个 DataTemplate 内,定制每个 DiggStory 对象如何显示

例如,我们可以用 DataTemplate 同时显示 DiggStory 的 title 和 NumDiggs 值,如下所示:

Silverlight 教程第五部分:用 ListBox 和 DataBinding 显示列表数据 (木野狐译)

在 DataTemplate 中,我们可以绑定 DiggStory 对象中我们所需的任何公共属性。注意上面我们是如何用 {Binding 属性} 语法,配合两个 TextBlock 控件来完成这一点的。

设置了上述 DataTemplate 后,我们的 ListBox显示如下:

Silverlight 教程第五部分:用 ListBox 和 DataBinding 显示列表数据 (木野狐译)

让我们再进一步,修改 DataTemplate 的定义如下。其中使用了两个 StackPanel - 一个用于水平地堆叠行,另一个用来垂直地堆叠文本块(TextBlock)。

Silverlight 教程第五部分:用 ListBox 和 DataBinding 显示列表数据 (木野狐译)

上述 DataTemplate 会使我们的 ListBox 用如下方式显示条目:

 

Silverlight 教程第五部分:用 ListBox 和 DataBinding 显示列表数据 (木野狐译)

我们在 App.xaml 文件中定义如下的 Style 规则(注意如何使用 LinearGradientBrush 来获得 DiggPanel 上的好看的渐变背景效果):

Silverlight 教程第五部分:用 ListBox 和 DataBinding 显示列表数据 (木野狐译)

 

关于 ListBox 有一点值得注意 - 即使我们定制了其条目的显示方式,它仍然会提供悬浮以及选中状态的语义,不管你使用的是鼠标还是键盘(上/下方向键,Home/End,等):

Silverlight 教程第五部分:用 ListBox 和 DataBinding 显示列表数据 (木野狐译)

ListBox 还@L_772_49@完整的流式改变大小的功能 - 并在需要的时候提供@L_801_6@的自动卷动功能(注意当窗口变小时,水平滚动条是如何出现的):

Silverlight 教程第五部分:用 ListBox 和 DataBinding 显示列表数据 (木野狐译)

下一步

我们现在已经把数据的显示切换成了基于列表的方式,并清理了其@L_801_6@列表。

现在让我们来完成这个程序的最后一点功能性行为 - 实现一个主/从工作流程,让用户在列表中选择某个文章时能查看其细节。详见下一篇: 《使用用户控件实现主/从场景》。

 

(翻译:木野狐

大佬总结

以上是大佬教程为你收集整理的Silverlight 教程第五部分:用 ListBox 和 DataBinding 显示列表数据 (木野狐译)全部内容,希望文章能够帮你解决Silverlight 教程第五部分:用 ListBox 和 DataBinding 显示列表数据 (木野狐译)所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。