日期:2014-05-16 浏览次数:20864 次
先用一个最简单的例子来演示数据绑定。
新建一个项目TestData来测试,拖拽两个控件到屏幕上:TextBox和Slider。
给Slider的Name设置为slider1,然后我们给两个控件之间添加数据绑定,使得TextBox始终显示滑动条内的进度值。
然后给Text属性添加数据绑定,并且指定对象为slider1,完整代码如下:
<Grid Background="{StaticResource ApplicationPageBackgroundThemeBrush}">
<TextBox HorizontalAlignment="Center" Margin="0,-100,0,0" TextWrapping="Wrap"
Text="{Binding Value, Mode=TwoWay, ElementName=slider1}" VerticalAlignment="Center"/>
<Slider x:Name="slider1" HorizontalAlignment="Center" VerticalAlignment="Center" Width="200" Height="30"/>
</Grid>
那么怎么自己去写数据绑定呢?
新建一个Person类来试验一下。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace TestData
{
class Person
{
public string Name
{
get;
set;
}
public int Age
{
get;
set;
}
}
}

先给TextBox命名为text1以便后面使用。
双击读取的按钮,跳转到了后台的c#文件。
在类中声明一个Person对象: Person myPerson = new Person();
然后在OnNavigatedTo方法中判断,如果是NavigationMode.New则设置text1的DataContent为前面声明的myPerson。
这里可以把DataContent理解为数据源。
然后点击按钮的监听方法里,将读取到的Person内容显示出来,在点击第二个按钮的时候将Person的name显示为当前的毫秒数值。
完整的代码如下:
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using Windows.Foundation;
using Windows.Foundation.Collections;
using Windows.UI.Popups;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
using Windows.UI.Xaml.Controls.Primitives;
using Windows.UI.Xaml.Data;
using Windows.UI.Xaml.Input;
using Windows.UI.Xaml.Media;
using Windows.UI.Xaml.Navigation;
// “空白页”项模板在 http://go.microsoft.com/fwlink/?LinkId=234238 上有介绍
namespace TestData
{
/// <summary>
/// 可用于自身或导航至 Frame 内部的空白页。
/// </summary>
public sealed partial class MainPage : Page
{
Person myPerson = new Person(){ Name = "why" , Age = 20 }