Silverlight单向绑定相关应用技巧解析

开发 开发工具
Silverlight单向绑定的应用对于初学者来说是一个比较好理解的部分。我们希望大家可以通过这篇文章介绍的例子充分掌握这一方法。

Silverlight开发工具是微软公司在进军UI领域的一个攻坚利器。它的出现,改变了开发人员传统的变成模式,使开发人员也能补通过美工来实现各种多媒体相关功能需求。在这里我们就先来了解下Silverlight单向绑定的一些相关概念。#t#

如果需要在数据源发生变化时能够通知UI进行相应的更新,即使用Silverlight单向绑定OneWay或者双向绑定TwoWay,则业务实体需要实现接口INotifyPropertyChanged。在本示例中,我们加上一个更新按钮,当单击按钮时更新user实例的属性值,会看到界面上的数据也会发生变化。

修改一下User类,使其实现INotifyPropertyChanged接口。

 

  1. public class User : INotify
    PropertyChanged  
  2. {  
  3. public event PropertyChangedEven
    tHandler PropertyChanged;  
  4. private string _name;  
  5. public string Name  
  6. {  
  7. get { return _name; }  
  8. set   
  9. {  
  10. _name = value;  
  11. if(PropertyChanged != null)  
  12. {  
  13. PropertyChanged(this, new Property
    ChangedEventArgs("Name"));  
  14. }  
  15. }  
  16. }  
  17. private string _address;  
  18. public string Address  
  19. {  
  20. get { return _address; }  
  21. set   
  22. {  
  23. _address = value;  
  24. if (PropertyChanged != null)  
  25. {  
  26. PropertyChanged(this, new Property
    ChangedEventArgs("Address"));  
  27. }  
  28. }  
  29. }  

修改数据绑定模式,使用Silverlight单向绑定OneWay模式,如{Binding Address, Mode=OneWay}

  1. < Grid x:Name="LayoutRoot" 
    Background="#46461F"> 
  2. < Grid.RowDefinitions> 
  3. < RowDefinition Height="160">
  4. < /RowDefinition> 
  5. < RowDefinition Height="40">
  6. < /RowDefinition> 
  7. < RowDefinition Height="40">
  8. < /RowDefinition> 
  9. < /Grid.RowDefinitions> 
  10. < Grid.ColumnDefinitions> 
  11. < ColumnDefinition Width="150">
  12. < /ColumnDefinition> 
  13. < ColumnDefinition Width="*">
  14. < /ColumnDefinition> 
  15. < /Grid.ColumnDefinitions> 
  16. < Image Source="terrylee.jpg"
     Width="78" Height="100" 
  17. HorizontalAlignment="Left" 
    Grid.Row="0" Grid.Column="1"/> 
  18. < Button x:Name="btnUpdate" 
    Width="100" Height="40" 
  19. Content="Update" Click="btnUpdate_Click"/> 
  20. < TextBlock Foreground="White" 
    FontSize="18" Text="姓名:" 
  21. Grid.Row="1" Grid.Column="0" 
    HorizontalAlignment="Right"/> 
  22. < TextBlock x:Name="lblName" 
    Foreground="White" FontSize="18" 
  23. Grid.Row="1" Grid.Column="1" 
    HorizontalAlignment="Left" 
  24. Text="{Binding Name, Mode=OneWay}"/> 
  25. < TextBlock Foreground="White" 
    FontSize="18" Text="位置:" 
  26. Grid.Row="2" Grid.Column="0" 
    HorizontalAlignment="Right"/> 
  27. < TextBlock x:Name="lblAddress" 
    Foreground="White" FontSize="18" 
  28. Grid.Row="2" Grid.Column="1" 
    HorizontalAlignment="Left" 
  29. Text="{Binding Address, Mode=OneWay}"/> 
  30. < /Grid> 

编写事件处理程序,为了演示把user声明为一个全局的,并在按钮的单击事件中修改其属性值:

 

  1. public partial class Page : UserControl  
  2. {  
  3. public Page()  
  4. {  
  5. InitializeComponent();  
  6. }  
  7. User user;  
  8. private void UserControl_Loaded(object 
    sender, RoutedEventArgs e)  
  9. {  
  10. user = new User();  
  11. user.Name = "TerryLee";  
  12. user.Address = "中国 天津";  
  13. lblName.DataContext = user;  
  14. lblAddress.DataContext = user;  
  15. }  
  16. private void btnUpdate_Click(object 
    sender, RoutedEventArgs e)  
  17. {  
  18. user.Name = "李会军";  
  19. user.Address = "China Tianjin";  
  20. }  

Silverlight单向绑定的应用方法就为大家介绍这里,希望能帮助大家提高对Silverlight这个工具的了解程度。

责任编辑:曹凯 来源: 博客园
相关推荐

2009-12-31 16:44:53

Silverlight

2009-12-30 10:15:57

Silverlight

2009-12-29 16:08:41

Silverlight

2009-12-30 18:18:32

Silverlight

2009-12-30 10:25:03

Silverlight

2009-12-31 10:21:53

Silverlight

2009-09-15 15:40:25

C# 绑定

2010-02-26 17:51:16

Silverlight

2010-01-04 14:49:30

Silverlight

2009-12-29 17:56:47

Silverlight

2009-12-30 18:23:13

Silverlight

2009-12-30 13:37:24

Silverlight

2010-01-25 18:27:54

Android进度条

2010-01-04 14:35:55

Silverlight

2009-12-31 17:00:40

Silverlight

2009-12-30 17:19:09

Silverlight

2010-01-04 16:23:42

Silverlight

2009-12-31 11:15:57

Silverlight

2009-12-30 18:07:54

Silverlight

2010-01-25 18:22:33

Android使用XM
点赞
收藏

51CTO技术栈公众号