您现在的位置: IT专家网 > WinSystem子站 > 技巧
让人迷恋 Avalon 数据绑定
作者: Chris Sells, 出处:微软, 责任编辑: 韩博颖,
2008-05-26 08:38
讨论 Avalon,并且将数据绑定引入其基于 Longhorn 的 Solitaire 应用程序。
绑定到复数数据
迄今为止,我已经向您说明了两个绑定到单个对象的示例。因为数据绑定与 XAML 之间存在紧密的集成,所以这种风格的绑定是自然和灵活的做法。但是,更为传统的绑定手段是绑定到一系列项目:
| <!-- Window1.xaml --> <Window ... > <GridPanel Columns="2"> <Text>Persons</Text> <ListBox ItemsSource="*Bind()" /> ... </GridPanel> </Window> // Window1.xaml.cs ... public partial class Window1 : Window { ArrayList persons = new ArrayList(); void Window1_Loaded(object sender, EventArgs e) { persons.Add(new Person("John", 10)); persons.Add(new Person("Tom", 8)); this.DataContext = this.persons; ... } ... } |
在该例中,我们已经将数据上下文设置为 Person 对象的数组列表。为了将 ListBox 控件绑定到该数据,对于 ItemsSource 属性我们只是使用 *Bind(),而未指定 Path,因为我们希望在各个项目中表示整个对象。默认情况下,将显示每个 Person 对象,如图 4 所示。

图 4. 以令人不愉快的方式显示一系列 Person 对象
如果您熟悉 Windows 窗体数据绑定,您将会认识到显示的是每个对象的类型,而不是有意义的值。默认情况下,将调用 Person 类的 ToString 方法来获取每个对象的字符串表示,从而产生返回类型名的 Object 基类方法实现。
Windows 窗体提供了多种方法来解决该问题,范围涉及选择单个显示属性到覆盖 Person 类的 ToString 方法。Avalon 数据绑定倾向于另一种技术,即使用样式 来决定应该如何显示 Person 对象。
- 本文关键词:

