日期:2014-05-16 浏览次数:20724 次
先用一个最简单的例子来演示数据绑定。
新建一个项目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 }