資料繫結控制項

資料繫結可以將應用程式的使用者介面與應用程式的資料類別連結。

如果您在開發 iOS 應用程式時曾經使用機碼值觀察 (KVO),您會發現資料繫結相當類似。

簡單來說,資料繫結可以連結兩個 XAML 控制項,讓它們自動更新:例如,這裡有一些 XAML,它們宣告的滑桿控制項會以目前的值自動更新文字區塊:


 	<Slider x:Name="mySlider" Width="100"/>
        <TextBlock Text="{Binding Value, ElementName=mySlider}" VerticalAlignment="Center" HorizontalAlignment="Center"/>


您可以看到 TextBlock 的 Text 屬性 (目標) 設定為使用特殊詞彙 Binding,以及我們用來提供資料的控制項名稱 (來源) 與要使用的特定控制項屬性;在此例中 Value 屬性是滑桿顯示的目前數值。

由於這類資料會從來源到目標朝一個方向流動,所以稱為「單向」繫結。還有一種稱為「雙向」的繫結形式,資料可雙向流動。

請看看這個簡單的程式碼範例,我們將 TextBlock 交換為 TextBox (接受手動輸入值的文字控制項):


	<Slider x:Name="mySlider" Width="100"/>
        <TextBox  Text="{Binding Value, ElementName=mySlider, Mode=TwoWay}" HorizontalAlignment="Left"  VerticalAlignment="Top"/>


跟之前一樣,調整滑桿就會改變文字方塊中的文字。不過,現在如果您在文字方塊中輸入一個值,滑桿控制項的狀態也會改變。

如需繫結語法的詳細資訊,請參閱繫結標記延伸 (使用 C#/VB/C++ 和 XAML 的 Windows 市集應用程式)

若不想手動輸入繫結關鍵字,您也可以在 [方案總管] 檢視中選取文字方塊,然後按一下 [文字] 屬性旁的彩色正方形,選取 [建立資料繫結...]

雖然控制項之間這種不需要程式碼的連結很方便,但與集合一起使用時,資料繫結才真正發揮作用。

集合控制項的資料繫結

XAML 控制項可以資料繫結至實作特定介面的 C# 類別,但將控制項連結至資料最簡單的方法是使用 ObservableCollection 物件。這些是儲存資料的陣列物件,但也會保護所有與已繫結 XAML 控制項的通訊。實際上,一旦將 ObservableCollection 物件連結到 XAML 集合控制項 (假設是 ListView),之後新增或移除新資料都會更新該控制項。

這裡有一個簡單的範例。首先,這是宣告 ListView 的 XAML:


<ListView x:Name="ListOfPlanets" Height="100" Width="100"/>

接下來,這裡有一些宣告 ObservableCollection 的 C#,放入一些資料,然後將它繫結至 XAML 控制項:


            // Add: using System.Collections.ObjectModel;
           ObservableCollection<string> planets = new ObservableCollection<string>();

            planets.Add("Mercury");
            planets.Add("Venus");
            planets.Add("Earth");

            ListOfPlanets.ItemsSource = planets;

此程式碼會將我們的字串自動填入 ListView 並加以顯示,如果您使用 AddRemove 來變更清單,該控制項就會自行更新。請注意,ObservableCollection 是泛型類別:您在建立它時要告知它您要儲存的資料類型。

集合控制項提供絕佳的彈性:您可以透過使用資料範本定義應如何格式化資料。例如,您可以顯示字串與影像,並使用 StackPanelsGrids 來定義它們在集合控制項內的配置。如需繫結與資料範本的詳細說明,請參閱快速入門:控制項的資料繫結

相關主題

適用於 iOS 開發人員的主題
適用於 iOS 開發人員的資源
適用於 iOS 開發人員的 Windows 8 控制項
適用於 iOS 開發人員的 Windows 8 手冊
資料繫結主題
資料繫結概觀 (使用 C#/VB/C++ 和 XAML 的 Windows 市集應用程式)
第五部分:建立部落格閱讀程式 (使用 C#/VB 和 XAML 的 Windows 市集應用程式)
如何繫結到階層式資料並建立主要/詳細資料檢視 (使用 C#/VB/C++ 和 XAML 的 Windows 市集應用程式)

 

 

顯示:
© 2015 Microsoft