[Windows 8 App]數據綁定------前台設定綁定
前一篇介紹了如何從後台設定綁定
在前台設定Binding也需要Binding的支持
不同的地方是在前台視以敘述聲明的方式將Binding標記給綁定的目標屬性
根據項目的不同需求
可以在標記中設定Binding類別的相對應屬性質來指定綁定模式、綁定來源屬性以及轉換器
下面將透過範例來說明前台設定綁定的部分
首先,新增一個專案【ForegroundBinding】
本範例定義一個類別【Person】,新增了姓名和年齡的Name和Age兩個屬性
並將Person類別的與TextBox的Text屬性之間建立綁定
使Name和Age屬性顯示在TextBox文字框中
開啟【MainPage.xaml】,在Grid設計畫面中新增一個TextBox的控制項
然後將Binding的值給TextBox控制項的Text屬性
【MainPage.xaml】的Grid程式碼如下:
<Grid Background="{StaticResource ApplicationPageBackgroundThemeBrush}">
<TextBox x:Name="ShowTextBox" HorizontalAlignment="Left" Margin="397,279,0,0" TextWrapping="Wrap" Text="{Binding}" FontSize="30" IsReadOnly="True" VerticalAlignment="Top" Height="176" Width="586"/>
</Grid>
接下來開啟【MainPage.xaml.cs】,在【ForegroundBinding】的命名空間下建立一個類別Person
並新增Name和Age兩個屬性,最後透過ToString方法來指定前台的TextBox顯示格式
程式碼如下:
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
public Person(string name, int age)
{
Name = name;
Age = age;
}
public override string ToString()
{
return "姓名" + Name + ", 年齡" + Age;
}
}
然後在MainPage的方法下,將Person類別的值給TextBox控制項的DataContext屬性以綁定數據來源
程式碼如下:
public MainPage()
{
this.InitializeComponent();
ShowTextBox.DataContext = new Person("Frank", 20);
}
這是【MainPage.xaml.cs】程式碼:
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using Windows.Foundation;
using Windows.Foundation.Collections;
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 ForegroundBinding
{
/// <summary>
/// 可以在本身使用或巡覽至框架內的空白頁面。
/// </summary>
///
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
public Person(string name, int age)
{
Name = name;
Age = age;
}
public override string ToString()
{
return "姓名" + Name + ", 年齡" + Age;
}
}
public sealed partial class MainPage : Page
{
public MainPage()
{
this.InitializeComponent();
ShowTextBox.DataContext = new Person("Frank", 20);
}
/// <summary>
/// 在此頁面即將顯示在框架中時叫用。
/// </summary>
/// <param name="e">描述如何到達此頁面的事件資料。Parameter
/// 屬性通常用來設定頁面。</param>
protected override void OnNavigatedTo(NavigationEventArgs e)
{
}
}
}
專案執行後的畫面: