Silverlight 2 数据绑定演示程序(附源代码下载)
2009-03-11 08:21
811 查看
[align=center]Silverlight 2 数据绑定演示程序(附源代码下载)[/align]
数据绑定(Data Binding)是用户界面UI和业务对象或其它数据提供者(data provider)的连接。用户界面对象称为目标,数据提供者成为数据源。
数据绑定帮主隔离应用程序的用户界面层和其他层,如业务对象、数据等等。通过绑定对象,实现用户界面层和底层的隔离,其中有2种模式:one-way和two-way。one-way 绑定仅仅显示数据源的数据,two-way 绑定则在更新用户界面的数据时,会同步更新数据源。
下面创建一个Silverlight 2 应用程序,绑定到业务对象,其中Book.cs 文件表示业务层(Business Layer)。如果你希望业务对象改变时,自动更新UI,业务对象必须实现INotifyPropertyChanged 接口。这个接口需要类有一个类型为PropertyChangedEventHandler事件。当绑定到UI控件上的任何属性Property 被赋值或清除时,必须触发PropertyChanged事件。
下面看看Book.cs 文件的部分代码:
public class Book : INotifyPropertyChanged
Book类实现INotifyPropertyChanged 接口。
下面的代码是对Title属性的定义。在set中,会触发PropertyChanged事件。
[align=left] // implement the required event for the interface[/align]
[align=left] public event PropertyChangedEventHandler PropertyChanged;[/align]
[align=left] public string Title[/align]
[align=left] {[/align]
[align=left] get { return bookTitle; }[/align]
[align=left] set[/align]
[align=left] {[/align]
[align=left] bookTitle = value;[/align]
[align=left] NotifyPropertyChanged("Title");[/align]
[align=left] } [/align]
}
[align=left] // factoring out the call to the event[/align]
[align=left] public void NotifyPropertyChanged(string propertyName)[/align]
[align=left] {[/align]
[align=left] if (PropertyChanged != null)[/align]
[align=left] {[/align]
[align=left] PropertyChanged(this, new PropertyChangedEventArgs(propertyName));[/align]
[align=left] }[/align]
[align=left] [/align]
}
在xaml页面文件中,每一个绑定的字段均使用Binding语法,关键字Binding跟随一个公有属性(public property),且属性绑定到控件,同时设置Mode,默认为OneWay。示例代码如下:
[align=left] <TextBlock x:Name="AuthorURL"[/align]
[align=left] Text="{Binding AuthorURL, Mode=OneWay }" [/align]
[align=left] VerticalAlignment="Bottom"[/align]
[align=left] HorizontalAlignment="Left"[/align]
[align=left] Grid.Row="5" Grid.Column="1"[/align]
Style="{StaticResource TextBlockStyle}"/>
DataContext
上面的实例代码表示AuthorURL控件绑定到AuthorURL属性,但是没有告诉它绑定到哪一个对象。DataContext 对象是一个特定的book实例,在运行时指定,并赋值给Grid的DataContext属性,这样,数据绑定控件就知道从book实例中获取AuthorURL属性值了。
DataContext对象可以沿着UI树继承,这样,当我们设置Grid对象的DataContext属性后,所有在Grid内的其他控件将可以访问DataContext(除非这些控件有自己的DataContext定义)。看看示例代码:
[align=left] void Page_Loaded(object sender, RoutedEventArgs e)[/align]
[align=left] {[/align]
[align=left] [/align]
[align=left] Book book = new Book();[/align]
[align=left] InitializeProgramming(book);[/align]
[align=left] LayoutRoot.DataContext = book;[/align]
}
控件样式Styling Controls
在Silverlight中有2种方式设置控件的样式:(1)直接在控件中应用样式Applying Styles Inline。示例代码如下:
<TextBlock x:Name="TitlePrompt" Text="Title: " VerticalAlignment="Bottom"
HorizontalAlignment="Right" Grid.Row="0" Grid.Column="0"
FontFamily="Comic Sans MS"
FontSize="16"
FontWeight="Bold"
Foreground="Red" />
(2)创建并应用Style对象
Style对象是可以重用的资源,你可以应用到任何container,或者通过放置在App.xaml 的Resources节,应用到整个项目。
[align=left]<Application.Resources>[/align]
[align=left]<Style TargetType="TextBlock" x:Key="TextBlockStyle">[/align]
[align=left] <Setter Property="VerticalAlignment" Value="Bottom"/>[/align]
[align=left] <Setter Property="HorizontalAlignment" Value="Right" />[/align]
[align=left] <Setter Property="FontFamily" Value="宋体" />[/align]
[align=left] <Setter Property="FontSize" Value="16" />[/align]
[align=left] <Setter Property="Foreground" Value="Blue" />[/align]
[align=left] </Style>[/align]
</Application.Resources>
范例程序运行界面:
本范例程序来自于《Programming .NET 3.5》,欢迎下载交流。
数据绑定(Data Binding)是用户界面UI和业务对象或其它数据提供者(data provider)的连接。用户界面对象称为目标,数据提供者成为数据源。
数据绑定帮主隔离应用程序的用户界面层和其他层,如业务对象、数据等等。通过绑定对象,实现用户界面层和底层的隔离,其中有2种模式:one-way和two-way。one-way 绑定仅仅显示数据源的数据,two-way 绑定则在更新用户界面的数据时,会同步更新数据源。
下面创建一个Silverlight 2 应用程序,绑定到业务对象,其中Book.cs 文件表示业务层(Business Layer)。如果你希望业务对象改变时,自动更新UI,业务对象必须实现INotifyPropertyChanged 接口。这个接口需要类有一个类型为PropertyChangedEventHandler事件。当绑定到UI控件上的任何属性Property 被赋值或清除时,必须触发PropertyChanged事件。
下面看看Book.cs 文件的部分代码:
public class Book : INotifyPropertyChanged
Book类实现INotifyPropertyChanged 接口。
下面的代码是对Title属性的定义。在set中,会触发PropertyChanged事件。
[align=left] // implement the required event for the interface[/align]
[align=left] public event PropertyChangedEventHandler PropertyChanged;[/align]
[align=left] public string Title[/align]
[align=left] {[/align]
[align=left] get { return bookTitle; }[/align]
[align=left] set[/align]
[align=left] {[/align]
[align=left] bookTitle = value;[/align]
[align=left] NotifyPropertyChanged("Title");[/align]
[align=left] } [/align]
}
[align=left] // factoring out the call to the event[/align]
[align=left] public void NotifyPropertyChanged(string propertyName)[/align]
[align=left] {[/align]
[align=left] if (PropertyChanged != null)[/align]
[align=left] {[/align]
[align=left] PropertyChanged(this, new PropertyChangedEventArgs(propertyName));[/align]
[align=left] }[/align]
[align=left] [/align]
}
在xaml页面文件中,每一个绑定的字段均使用Binding语法,关键字Binding跟随一个公有属性(public property),且属性绑定到控件,同时设置Mode,默认为OneWay。示例代码如下:
[align=left] <TextBlock x:Name="AuthorURL"[/align]
[align=left] Text="{Binding AuthorURL, Mode=OneWay }" [/align]
[align=left] VerticalAlignment="Bottom"[/align]
[align=left] HorizontalAlignment="Left"[/align]
[align=left] Grid.Row="5" Grid.Column="1"[/align]
Style="{StaticResource TextBlockStyle}"/>
DataContext
上面的实例代码表示AuthorURL控件绑定到AuthorURL属性,但是没有告诉它绑定到哪一个对象。DataContext 对象是一个特定的book实例,在运行时指定,并赋值给Grid的DataContext属性,这样,数据绑定控件就知道从book实例中获取AuthorURL属性值了。
DataContext对象可以沿着UI树继承,这样,当我们设置Grid对象的DataContext属性后,所有在Grid内的其他控件将可以访问DataContext(除非这些控件有自己的DataContext定义)。看看示例代码:
[align=left] void Page_Loaded(object sender, RoutedEventArgs e)[/align]
[align=left] {[/align]
[align=left] [/align]
[align=left] Book book = new Book();[/align]
[align=left] InitializeProgramming(book);[/align]
[align=left] LayoutRoot.DataContext = book;[/align]
}
控件样式Styling Controls
在Silverlight中有2种方式设置控件的样式:(1)直接在控件中应用样式Applying Styles Inline。示例代码如下:
<TextBlock x:Name="TitlePrompt" Text="Title: " VerticalAlignment="Bottom"
HorizontalAlignment="Right" Grid.Row="0" Grid.Column="0"
FontFamily="Comic Sans MS"
FontSize="16"
FontWeight="Bold"
Foreground="Red" />
(2)创建并应用Style对象
Style对象是可以重用的资源,你可以应用到任何container,或者通过放置在App.xaml 的Resources节,应用到整个项目。
[align=left]<Application.Resources>[/align]
[align=left]<Style TargetType="TextBlock" x:Key="TextBlockStyle">[/align]
[align=left] <Setter Property="VerticalAlignment" Value="Bottom"/>[/align]
[align=left] <Setter Property="HorizontalAlignment" Value="Right" />[/align]
[align=left] <Setter Property="FontFamily" Value="宋体" />[/align]
[align=left] <Setter Property="FontSize" Value="16" />[/align]
[align=left] <Setter Property="Foreground" Value="Blue" />[/align]
[align=left] </Style>[/align]
</Application.Resources>
范例程序运行界面:
本范例程序来自于《Programming .NET 3.5》,欢迎下载交流。
相关文章推荐
- 使用silverlight构建一个工作流设计器(十)(附源代码下载、在线演示、视频教程)
- 【技术原创】京东商城价格图片分析解析源代码下载(C#),附演示程序
- C#:一个增强的TcpClient(*)客户端演示程序及源代码下载
- 使用silverlight构建一个工作流设计器(十二)(附源代码下载、在线演示、视频教程)
- 使用silverlight构建一个图形化流程设计器(一)(源代码下载及在线演示)
- WPF:图像处理(*)二值化演示程序及源代码下载
- C#:一个增强的TcpListener(*)服务器演示程序及源代码下载
- 使用silverlight构建一个工作流设计器(九)(附源代码下载、在线演示、视频教程)
- 【技术原创】京东商城价格图片分析解析源代码下载(C#),附演示程序 转
- Silverlight 实时图表生成程序 ChartBuilder 源代码下载
- RAD Studio 10免费培训之LiveBindings表达式和实时数据绑定——讲义及范例程序下载
- meanshift 演示程序源代码下载地址
- 【自然框架.视频】基础设置(二)下载演示程序用的数据库,和数据表结构简介
- 使用silverlight构建一个工作流设计器(八)(附源代码下载、在线演示、视频教程)
- 【技术原创】京东商城价格图片分析解析源代码下载(C#),附演示程序 转
- C#:一个增强的TcpListener(*)服务器演示程序及源代码下载
- 使用silverlight构建一个图形化流程设计器(二)(附源代码下载及在线演示)
- 【技术原创】京东商城价格图片分析解析源代码下载(C#),附演示程序
- 【技术原创】京东商城价格图片分析解析源代码下载(C#),附演示程序 转
- 使用silverlight构建一个工作流设计器(十一)(附源代码下载、在线演示、视频教程)