首先需要创建一个实体类
public class Product
{
private string productname;//产品名字
public string ProductName
{
get { return productname; }
set { productname = value; }
}
private double productprice;//产品价格
public double ProductPrice
{
get { return productprice; }
set {productprice = value;}
}
}
界面代码
<Grid Margin="26,20,0,0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="0.32*"/>
<ColumnDefinition Width="0.68*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="0.225*"/>
<RowDefinition Height="0.235*"/>
</Grid.RowDefinitions>
<TextBlock Margin="8,35,17,0" TextWrapping="Wrap" Text="ProductName" Height="30" VerticalAlignment="Top"/>
<TextBlock Margin="8,25,17,40" TextWrapping="Wrap" Text="ProductPrice" Grid.Row="1"/>
<TextBox x:Name="txtProductName" Grid.Column="1" Margin="25,35,43,58" TextWrapping="Wrap" Text="{Binding ProductName}"/>
<TextBox Grid.Column="1" Height="32" Margin="25,39,43,0" Grid.Row="1" TextWrapping="Wrap" Text="{Binding ProductPrice}" VerticalAlignment="Top"/>
</Grid>
要想使用数据绑定,必须通过绑定表达式来设置目标属性。绑定表达式是一个标记语言,通常以Binding开头。创建表达式需要指明要绑定的数据源中的属性的名称。这个例子中需要绑定Product中的两个属性,需要用到的绑定表达式是{Binding ProductName}
然后用它设置TextBox的Text属性。
<TextBox x:Name="txtProductName" Grid.Column="1" Margin="25,35,43,58" TextWrapping="Wrap" Text="{Binding ProductName}"/>
绑定表达式只是指明了数据源中属性的名称,但它并不知道数据源。可以通过两种方式来设置数据源:通过设置元素的DataContext属性或者设置绑定的Source属性。
大多数情况下,最实用的方法是设置元素的DataContext属性。在上边例子中你可以设置每一个文本框的DataContext属性。但是,还有更简单的方法。如果一个元素用了绑定表达式但它的DataContext属性为空,这个元素将会往它的上级寻找,直到找到一个数据源。因此在上边例子中可以直接设置Grid的DataContext属性,所有的TextBox也将用相同的数据源。
后台代码
this.Loaded += (ss, ee) =>
{
Product product = new Product()
{
ProductName="Audi",
ProductPrice=50000.0
};
LayoutRoot.DataContext = product;
};
效果