例如一:
<Slider Name="Slider1" HorizontalAlignment="Left" Margin="38,55,0,0" VerticalAlignment="Top" Height="19" Width="227"/>
<TextBox Text="{Binding Value,ElementName=Slider1}" HorizontalAlignment="Left" Height="23" Margin="38,101,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="120"/>
</Grid>
{
Person person = new Person();
person.Age = 22;
person.Name = "Charles";
tbAge.DataContext = person;
tbName.DataContext = person;
}
public class Person
{
public int Age { set; get; }
public string Name { set; get; }
}
<TextBox Name="tbAge" ToolTip="{Binding Age}" HorizontalAlignment="Left" Height="23" Margin="80,207,0,0" TextWrapping="Wrap" Text="{Binding Age}" VerticalAlignment="Top" Width="120"/>
<TextBlock Text="姓名" Width="30" Margin="39,163,434,125" />
<TextBlock Margin="38,207,435,81" Text="年龄" Width="30" />
显示效果:
2.a修改类的定义(注意需要引入 System.ComponentModel):
{
private int age;
private string name;
public int Age
{
get { return age; }
set
{
this.age = value;
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs("Age"));
}
}
}
public string Name
{
get { return name; }
set {
this.name = value;
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs("Name"));
}
}
}
public event PropertyChangedEventHandler PropertyChanged;
}
{
person.Age++;
}
截图:
对控件上下文(DataContext)的指定,第一种:可以直接指定给控件,缺点是当控件多了,代码量相对来说就多来了;第二种:指定给其父控件,当不给子控件指定DataContext时,默认使用父控件的上下文,相对来说,代码简约.
person.Age = 22;
person.Name = "Charles";
tbAge.DataContext = person;
tbName.DataContext = person;
采用第二种:
this.DataContext = person;(注意:this,指代当前窗体,也可以使用当前需要绑定上下文的共有父控件,如grid1.DataContext=person)