一个基本数据绑定通常包括4个部分,绑定目标、绑定目标属性、源目标、源目标属性下面的例子就是一个简单的单向数据绑定。
首先进行简单的 布局,界面如下
源代码如下
<Grid Name="layout" Background="{StaticResource ApplicationPageBackgroundThemeBrush}">
<TextBlock HorizontalAlignment="Left" Margin="300,242,0,0" TextWrapping="Wrap" Text="员工信息表" VerticalAlignment="Top" Height="36" Width="214" FontFamily="Global User Interface" FontSize="30"/>
<TextBlock HorizontalAlignment="Left" Margin="243,307,0,0" TextWrapping="Wrap" Text="姓名:" VerticalAlignment="Top" FontSize="20"/>
<TextBlock HorizontalAlignment="Left" Margin="243,349,0,0" TextWrapping="Wrap" Text="工号:" VerticalAlignment="Top" FontSize="20"/>
<TextBlock HorizontalAlignment="Left" Margin="243,387,0,0" TextWrapping="Wrap" Text="职务:" VerticalAlignment="Top" FontSize="20"/>
<TextBlock HorizontalAlignment="Left" Margin="243,419,0,0" TextWrapping="Wrap" Text="薪资:" VerticalAlignment="Top" FontSize="20"/>
<TextBox Name="txtName" HorizontalAlignment="Left" Margin="308,301,0,0" TextWrapping="Wrap" Text="" VerticalAlignment="Top" Width="195"/>
<TextBox Name="txtNumber" HorizontalAlignment="Left" Margin="308,338,0,0" TextWrapping="Wrap" Text="" VerticalAlignment="Top" Width="195"/>
<TextBox Name="txtPost" HorizontalAlignment="Left" Margin="308,375,0,0" TextWrapping="Wrap" Text="" VerticalAlignment="Top" Width="195"/>
<TextBox Name="txtSalary" HorizontalAlignment="Left" Margin="308,412,0,0" TextWrapping="Wrap" Text="" VerticalAlignment="Top" Width="195"/>
接下来我们要准备源目标,新建一个员工类
public class Employee
{
public string Name{get;set;}
public int Number{get;set;}
public string Post{get;set;}
public double Salary{get;set;}
public Employee(string name,int number,string post,double salary)
{
Name=name;
Number=number;
Post=post;
Salary=salary;
}
}
在主构造函数中做初始化
public MainPage()
{
this.InitializeComponent();
Employee employee = new Employee("飞机", 222, "3232", 5000.43);
layout.DataContext = employee;
Binding bindingName = new Binding();
bindingName.Mode = BindingMode.OneWay;
bindingName.Path = new PropertyPath("Name");
txtName.SetBinding(TextBox.TextProperty, bindingName);
Binding bindingNumber = new Binding();
bindingNumber.Mode = BindingMode.OneWay;
bindingNumber.Path = new PropertyPath("Number");
txtNumber.SetBinding(TextBox.TextProperty, bindingNumber);
Binding bindingPost = new Binding();
bindingPost.Mode = BindingMode.OneWay;
bindingPost.Path = new PropertyPath("Post");
txtPost.SetBinding(TextBox.TextProperty, bindingPost);
Binding bindingSalary = new Binding();
bindingSalary.Mode = BindingMode.OneWay;
bindingSalary.Path = new PropertyPath("Salary");
txtSalary.SetBinding(TextBox.TextProperty, bindingSalary);
}