silverlight 数据绑定简单示例(markup extension)
这个例子中被绑定的数据是一个owner类的实例,现在silverlight项目中添加一个owner类
Class Owner
public class Owner
{
public int OwnerId { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public string Address { get; set; }
public string ZipCode { get; set; }
public string City { get; set; }
public string State { get; set; }
public string Country { get; set; }
public DateTime BirthDate { get; set; }
public DateTime CustomerSince { get; set; }
public string ImageName { get; set; }
public DateTime LastActivityDate { get; set; }
public double CurrentBalance { get; set; }
public double LastActivityAmount { get; set; }
}
{
public int OwnerId { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public string Address { get; set; }
public string ZipCode { get; set; }
public string City { get; set; }
public string State { get; set; }
public string Country { get; set; }
public DateTime BirthDate { get; set; }
public DateTime CustomerSince { get; set; }
public string ImageName { get; set; }
public DateTime LastActivityDate { get; set; }
public double CurrentBalance { get; set; }
public double LastActivityAmount { get; set; }
}
然后在MainPage.xaml.cs中创建一个Owner类的实例
MainPage.xaml.cs
public MainPage()
{
InitializeComponent();
InitializeOwner();
}
private void InitializeOwner()
{
owner = new Owner();
owner.OwnerId = 1234567;
owner.FirstName = "Zhu";
owner.LastName = "jz";
owner.Address = "ChaoYang BJ";
owner.ZipCode = "100001";
owner.City = "BeiJing";
owner.Country = "China";
owner.State = "BeiJing";
owner.ImageName = "wo.jpg";
owner.LastActivityAmount = 100;
owner.LastActivityDate = DateTime.Today;
owner.CurrentBalance = 1234.56;
owner.BirthDate = new DateTime(1986, 6, 8);
owner.CustomerSince = new DateTime(2009, 12, 20);
}
{
InitializeComponent();
InitializeOwner();
}
private void InitializeOwner()
{
owner = new Owner();
owner.OwnerId = 1234567;
owner.FirstName = "Zhu";
owner.LastName = "jz";
owner.Address = "ChaoYang BJ";
owner.ZipCode = "100001";
owner.City = "BeiJing";
owner.Country = "China";
owner.State = "BeiJing";
owner.ImageName = "wo.jpg";
owner.LastActivityAmount = 100;
owner.LastActivityDate = DateTime.Today;
owner.CurrentBalance = 1234.56;
owner.BirthDate = new DateTime(1986, 6, 8);
owner.CustomerSince = new DateTime(2009, 12, 20);
}
到此,已经通过使用扩展标识语法(Markup Extension)实现了绑定到TextBlock的Text属性。就差最后一步,将Owner类实例绑定到控件,由下面代码来实现:
public MainPage()
{
InitializeComponent();
InitializeOwner();
OwnerDetailsGrid.DataContext = owner;
}
InitializeComponent();
InitializeOwner();
OwnerDetailsGrid.DataContext = owner;
}
效果如下:
回过头来再看XAML代码,上面说过,这儿是通过扩展标识实现TextBlock的数据绑定:
<TextBlock Text="{Binding CustomerSince}" />
实际上这是一种缩写写法,完整的绑定语法如下:
<TargetControl TargetProperty="{Binding SourceProperty,SomeBindingProperties}" />