.Silverlight Binding (One Time,One Way,Two Way)

本文将探讨Silverlight绑定的三种方式-One time,One way,Two way。

 

  One way binding

  从名称就可以了解到该方法只支持单向的从数据对象到UI的绑定。例如,界面上有一个textbox name='txtYear',text属性绑定了某个数据对象的'year'属性。

则一旦该数据对象发生了改变,txtYear的text会跟随改变。但是相反的,txtYear的text属性的改变却不会影响到数据对象。

 

 
  
< TextBox x:Name ="txtYear" Text ="{Binding Year, Mode=OneWay}" ></ TextBox >

下面是绑定的方法。

 private void bind()
{   
DateClass myDate
= new DateClass ();
myDate .Year
= DateTime.Now.Year;   
txtYear.DataContext
= myDate ;
}

  

  Two way binding

  Two way binding模式下,数据在数据对象和UI之间是同步的,一旦任何一方发生了改变,都会同时改变另一方。

  

 
  
< TextBox x:Name ="txtYear" Text ="{Binding Year, Mode=TwoWay}" ></ TextBox >

 

 

  需要注意的是,如果是自定义的数据对象,我们需要引用System.ComponentModel,继承INotifyPropertyChanged接口

并在该对象中实现PropertyChanged。

 

 

Silverlight Binding (One Time,One Way,Two Way) - dingtao-wgs - 程序员驿站 Silverlight Binding (One Time,One Way,Two Way) - dingtao-wgs - 程序员驿站 代码
 
   
public class DateClass : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
private int _intYear;
public int Year{
set
{  
_intYear
= value;  
OnPropertyChanged(
" Year " );
}
get
{  
return _intYear;
}
}

private void OnPropertyChanged( string property)
{
if (PropertyChanged != null )
{  
PropertyChanged(
this , new PropertyChangedEventArgs(property));
}
}
}

 

 

 

 

   与UI的绑定方法同上。

 

  One time binding

  One time binding模式下,数据仅仅与UI绑定一次,数据对象与UI任何一方发生改变都不会影响到另一方面,One time binding在效率上比前两种高,比较适用于报表之类只需要绑定一次数据的UI对象。

 

 
  
< TextBox x:Name ="txtYear" Text ="{Binding Year, Mode=OneTime}" ></ TextBox >

 

  如上所述,Silverlight的三种绑定方式就是如此,至于什么时候用哪种方式就取决当时的情况了。

转载于:https://www.cnblogs.com/suncarry/archive/2011/06/04/2072609.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值