微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Silverlight/WPF数据绑定oneTime,oneWay,twoWay

oneTime:一次性绑定,将数据给控件,绑定就结束
oneWay:数据源改变会影响绑定该数据源的控件
twoWay:数据源改变会影响绑定该数据源的控件,并且控件中数据改变时也会影响到数据源
一、oneTime
  前台

<TextBox Text="{Binding Name,Mode=OneTime}" Height="23" HorizontalAlignment="Left" Margin="114,92,0" Name="textBox1" VerticalAlignment="Top" Width="120" />

  后台

复制代码

public class Person
{
  string name;
  public string Name
  {
    get { return name; }
    set { name = value; }
  }            
}
Person p = new Person();
public MainPage()
{
  InitializeComponent();
  p.Name = "乔峰";
  textBox1.DataContext = p;
}

复制代码

二、oneWay
  前台

/> Button Content="oneWay"="159,182,255); line-height:1.5!important">="button1"="75" Click="button1_Click" />  

class Person : INotifyPropertyChanged//要实现oneWay和twoWay的绑定需要实现一个接口 { string name; string Name { get { return name; } set { name = value; NotifyChange(Name"); } } #region INotifyPropertyChanged 成员 event PropertyChangedEventHandler PropertyChanged; private void NotifyChange(string propertyName) { if (PropertyChanged != null) { PropertyChanged(this,new PropertyChangedEventArgs(propertyName)); } } #endregion } Person p = new Person(); public MainPage() { InitializeComponent(); p.Name = "; textBox1.DataContext = p; } void button1_Click(object sender,RoutedEventArgs e) { p.Name = 段誉"; }

复制代码

当点击oneWay这个按钮时,数据源中的改变将会影响绑定了该数据源的控件。

三、twoWay
  前台

/> ="textBox2""; textBox1.DataContext = p; textBox2.DataContext = p; }

复制代码

让textBox1和textBox2都绑定相同的数据源,前者以oneWay模式绑定,后者以twoWay模式绑定。当修改了textBox2文本框中的内容并让文本框失去焦点时,数据源的值也改变,使textBox1和textBox2都显示新的值。


转自:http://www.cnblogs.com/sydeveloper/archive/2012/04/27/2443098.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐