顯示資料

資料是所有使用者介面的核心。從旅館訂房網站到股市看盤軟體,使用者介面通常可讓您以視覺化方式與某種形式的資料互動。如何選擇所要使用的使用者介面元件,以及如何加以放置以提供有用的工作流程,大部分是取決於您所要使用的資料本質。

資料來源

您的應用程式可能只需要使用內部資料來源,也可能會對使用者輸入表單中的部分數字進行運算。至於您所建立的其他應用程式,可能需要存取外部資料來源 (如含有資訊的資料庫、Web 摘要、Web 服務或本機檔案)。Microsoft Expression Blend 支援下列類型的資料來源:

  • XML 資料來源    可以用 XML 格式,將資料提供給應用程式的本機或遠端 XML 檔案。您可以使用已新增至專案的 XML 檔案,也可以將資料來源設為某個網站上 XML 檔案的 URL。

    如需詳細資訊,請參閱使用即時 XML 資料來源

    Note注意:

    Microsoft Silverlight 不支援即時 XML 資料來源。不過,您可以在 MSDN 的在 Silverlight 中剖析 XML 資料 Cc295161.xtlink_newWindow(zh-tw,Expression.40).png下找到關於使用 XML 資料的資訊。

  • 物件資料來源    包含公用屬性的物件,您可將目標屬性繫結至這些公用屬性。在 WPF 應用程式中,您可以使用 Microsoft .NET Framework 類別庫,將資料從資料庫轉換成 ObservableCollection。

    如需詳細資訊,請參閱使用物件資料來源連接到資料庫試試看:顯示來自範例 SQL 資料庫的資料,或參閱 MSDN 的資料繫結概觀 Cc295161.xtlink_newWindow(zh-tw,Expression.40).png主題。針對 Silverlight 應用程式,請參閱 MSDN 的 Silverlight 資料繫結 Cc295161.xtlink_newWindow(zh-tw,Expression.40).png

    Note注意:

    Microsoft Expression Blend 不支援 CLR 物件資料來源類別,此類別包含建構函式中的參數。

  • 範例資料來源    使用 [資料] 面板中的 [建立範例資料] 工具,建立的一組本機檔案。因為您在畫板上看不到外部資料,因此 Expression Blend 支援可在設計應用程式時使用的範例資料。

    如需詳細資訊,請參閱建立範例資料

資料面板中的資料來源清單

Cc295161.5466a442-fd31-47e2-893e-4a738a1eaf2e(zh-tw,Expression.40).png

與 Expression Blend 中使用中文件關聯的資料來源,列在 [資料] 面板中的 [此文件] 下。可供專案中所有文件使用的資料來源,列在 [資料] 面板中的 [專案] 下。您可以使用 [資料] 面板頂端的按鈕,建立資料來源。您可以將資料項目拖曳至畫板上,建立已繫結至項目資料的控制項。

如需詳細資訊,請參閱在控制項中顯示資料

資料繫結

資料繫結是將資料來源中的項目連接到使用者介面元件 (控制項) 的程序。這表示每當資料變更時,介面元件會選擇性地反映出這些變更,反之亦然。最簡單的資料繫結範例是,內部繫結至矩形寬度的捲軸控制項。矩形會隨著捲軸的移動而放大或縮小。

Expression Blend 提供簡單且一致的方式,讓應用程式中的物件繫結至不同資料來源,以及設定可顯示並修改資料的物件。基本上,繫結建構在來源與目標之間。來源通常是某個資料來源或另一個控制項,而目標則是某個控制項。在捲軸的範例中,來源是捲軸控制項的 Value 屬性,而目標則是矩形的 Width 屬性。

您可以使用與 [屬性] 面板中的屬性相關聯之 [進階選項] 按鈕 Cc295161.12e06962-5d8a-480d-a837-e06b84c545bb(zh-tw,Expression.40).png,或將項目從 [資料] 面板拖曳至畫板上,以建立繫結關係。

如需詳細資訊,請參閱將物件繫結至資料

展開 [進階選項] 區段的 [建立資料繫結] 對話方塊

Cc295161.8fcdc007-d9cd-430d-81d5-29ac9b88ee31(zh-tw,Expression.40).png

[建立資料繫結] 對話方塊會呈現三個用以選取資料來源的基本選項,以及進階選項:

  • 資料欄位   此選項會呈現專案中所建立的 XML 及 CLR 物件資料來源及其相關聯欄位。您可以新增 XML 資料來源或 CLR 物件資料來源,也可以使用已建立的現有連線。若要選取要繫結的欄位,請在 [資料來源] 下選取項目,然後在 [欄位] 下選取資料項目。除非擁有可以套用的值轉換器,否則資料項目類型必須要與所繫結的屬性類型相符 (請參閱本主題後面的「進階選項」)。建立資料繫結之後,就會將資料項目填入目標的屬性值中。

  • 元素屬性    此選項可以將某個物件屬性繫結至相同的可延伸應用程式標記語言 (XAML) 檔案中的另一個物件屬性,這與本主題前面所提及範例中,將矩形的 Width 屬性繫結至捲軸的 Value 屬性類似。若要建立此繫結,請執行下列一項動作:

    • 在 [屬性] 面板中找出目標屬性 (在此範例中為矩形的 Width 屬性),按一下 [進階選項] Cc295161.12e06962-5d8a-480d-a837-e06b84c545bb(zh-tw,Expression.40).png,然後按一下 [資料繫結]。按一下 [元素屬性] 索引標籤,並瀏覽左窗格中的物件以找出捲軸 (來源物件),然後瀏覽右窗格中的屬性清單以找出並選取 Value 屬性。

    • 在 [屬性] 面板中找出目標屬性 (在此範例中為矩形的 Width 屬性),按一下 [進階選項] Cc295161.12e06962-5d8a-480d-a837-e06b84c545bb(zh-tw,Expression.40).png,然後按一下 [元素屬性繫結]。請注意,游標已經變成 [畫板元素選擇器]** **畫板元素選擇器圖示。在畫板上按一下您要繫結屬性的物件。在 [建立資料繫結] 下拉式方塊中,選取 Value 屬性。

  • 明確資料內容   此選項可讓您繫結至內容中的資料,而此內容是指定給目前的物件或它的其中一個父物件。一旦建立資料內容,所有資料繫結屬性就有共通來源的範圍,如此可簡化多個控制項之間共用資料的方式。例如,您可以將資料內容指派給含有 ListBox 物件及 TextBlock 物件的格線物件,並將這兩個物件的屬性繫結至相同內容中的不同資料項目。當您要建立清單/詳細資料設計時,這個功能會很有幫助;這是指如果您按一下清單中的項目 (清單窗格),便會在另一個物件中顯示該項目的詳細資訊 (詳細資料窗格)。[明確資料內容] 索引標籤中的 [欄位] 窗格會列出從所繼承資料內容取得的資料連接欄位,而您可以從中選擇適合作為目標屬性的欄位。

    您也可以在 [資料] 面板底部的 [資料內容] 類別中,存取資料內容資訊。如果在畫板上選取的物件已繫結資料,[資料內容] 類別便會顯示目前選取項目或範圍的資料內容屬性 ( DataContext ) 或設計階段資料內容屬性 ( d:DataContext )。

    資料面板中的資料內容類別

    當您在 [資料] 面板中切換 [清單模式] 和 [詳細資料模式] 時,[資料內容] 類別的顯示會跟著改變。您也可以直接從 [資料內容] 類別將所需的資料拖曳到畫板中的元素上,以建立資料繫結。

    Note注意:

    您可以輸入自訂路徑或 XML 路徑語言 (XPath) 運算式來進行資料繫結。[XPath] 欄位會自動填入您在 [欄位] 下選取的項目路徑。但是,您可以附加路徑指定來自資料來源的資料,例如識別想要的 XML 資料中的特定節點,如陳列中的項目。如需有關如何使用 XPath 的詳細資訊,請參閱 MSDN 的 XPath 語法 Cc295161.xtlink_newWindow(zh-tw,Expression.40).pngHOW TO:使用 XMLDataProvider 和 XPath 查詢繫結至 XML 資料 Cc295161.xtlink_newWindow(zh-tw,Expression.40).png

  • 顯示進階屬性   按一下底端擴充器 Cc295161.de239c9d-42ce-4f5e-83b9-5f9924c0431f(zh-tw,Expression.40).png 就可顯示對話方塊的進階屬性區段,您可以在此區段中設定進階屬性,例如資料流的方向 (請參閱本主題稍後的<資料流>)、目標屬性的預設值、值轉換器及轉換器參數。值轉換器是 .NET Framework 類別方法,用來將值從某種類型轉換為另一種類型,而且在來源及目標屬性的類型不符時是必要項目。您可以按一下值轉換器方塊旁邊的 [新增值轉換器] Cc295161.3f9fe48b-caf8-4989-8a91-017ba1e0cb77(zh-tw,Expression.40).png,然後從 [新增值轉換器] 對話方塊中選擇值轉換器,以新增值轉換器。您也可以指定轉換器參數 (例如,將 double 轉換為 decimal,則可能需要指定小數點後面要顯示的小數位數值)。

    如需有關值轉換器的範例,請參閱試試看:將資料從某種類型轉換成另一種類型

資料流

將資料流定義為資料在來源與目標之間流動的方向。如果需要使用捲軸縮放矩形,只需要建立捲軸 (來源) 到矩形 (目標) 的單向繫結關係。支援下列資料流的繫結設定:

  • 預設    預設設定是 OneWay 。來源的變更會自動更新目標,但是目標的變更則不會更新來源。

  • OneWay    來源的變更會自動更新目標,但是目標的變更則不會更新來源。

  • TwoWay    來源的變更會自動更新目標,反之亦然。

  • OneWayToSource    目標的變更會自動更新來源,但是來源的變更則不會更新目標。這與 OneWay 相反。在 [屬性] 面板中看不到目標屬性的特殊情況下,這個功能十分有用;該屬性不是相依性屬性時,就會發生這種情況。您可以利用 OneWayToSource 繫結關係,在目標上設定資料繫結。Silverlight 專案中不支援此選項。

  • **OneTime   ** 不做任何變更。當初始化應用程式時,目標會設為來源值。目標在之後不會更新。

若要查看進行中的資料流,請考慮使用下列含有 Slider 控制項 (來源) 及 TextBox 控制項 (目標) 的使用者介面範例:

透過繫結類型說明資料流

Cc295161.955af9ad-a12d-41c6-9106-1ec4be43d0d4(zh-tw,Expression.40).png

在此圖例中,繫結關係是使用下列程序設定於文字方塊 (目標) 上:

  1. 在 [屬性] 面板中,按一下 [進階選項] 按鈕 Cc295161.12e06962-5d8a-480d-a837-e06b84c545bb(zh-tw,Expression.40).png,此按鈕與 TextBoxText 屬性 (在 [一般屬性] 下) 相關聯,然後按一下 [資料繫結]。

  2. 在顯示的 [建立資料繫結] 對話方塊中,於 [元素屬性] 索引標籤選取 [滑桿] 節點的 Value 屬性。

下表根據繫結類型,描述此範例的繫結行為:

繫結類型 結果

OneWay

移動捲軸 (來源) 會更新文字方塊 (目標)。不過,在文字方塊中輸入數字並不會移動捲軸。

TwoWay

移動捲軸 (來源) 會更新文字方塊 (目標)。此外,如果在文字方塊外部按一下滑鼠,然後在文字方塊中輸入數字,捲軸位置就會變更。

OneWayToSource

在文字方塊 (目標) 中輸入數字,然後按一下文字方塊外部,則會移動捲軸 (來源)。不過,移動捲軸並不會更新文字方塊。

OneTime

啟動應用程式時,捲軸 (來源) 的初始值會更新文字方塊 (目標)。後續的捲軸變更則不會更新文字方塊,而且在文字方塊中輸入數字完全不會更新捲軸。

如需說明此情況的程序,請參閱將物件繫結至使用者輸入或其他內部值

繫結至資料來源的方法

工作流程 1:從來源繫結至目標

建立外部資料來源之後,可以將該資料來源繫結至使用者介面控制項。有兩種方式可以達到此目標:

  • 繫結現有控制項    如果控制項已在文件中,您可以將資料節點從 [資料] 面板拖曳至控制項上,將它繫結至資料。拖曳資料節點時會顯示訊息,讓您知道資料會繫結至哪個物件屬性。

    Cc295161.054f8f1c-c18a-4268-a963-390e84fa2809(zh-tw,Expression.40).png

    如果您要指定不同的屬性,可以在放開滑鼠按鈕前按 SHIFT 鍵。

    Cc295161.a1b9bdb2-3bb6-436d-a955-b2153b6ffba0(zh-tw,Expression.40).png

  • 建立新的控制項    您可以將任何資料節點從 [資料] 面板拖曳至文件中。此選項會將新的控制項插入文件中。

如需詳細資訊,請參閱下列主題:

工作流程 2:從目標繫結至來源

雖然前一個工作流程一律是從資料來源開始,而結束於目標控制項,但是如果您已建立控制項,而且知道想要繫結至資料來源或另一個控制項的屬性,則可以反轉此程序。此工作流程在物件對物件的繫結關係中特別有用。

如需詳細資訊,請參閱將物件繫結至使用者輸入或其他內部值

在 [屬性] 面板的每個屬性值編輯器旁,可以找到讓您設定進階選項 (包括資料繫結) 的 [進階選項] 按鈕 Cc295161.12e06962-5d8a-480d-a837-e06b84c545bb(zh-tw,Expression.40).png。按一下進階選項功能表上的 [資料繫結],會開啟本主題前面之「工作流程 1」中所述之相同 [建立資料繫結] 對話方塊。

資料範本

有時您可能需要顯示資料來源中項目的清單。項目名稱中的 "(Array)" 可識別包含項目清單的資料項目。將清單節點從 [資料] 面板拖曳至 DataGrid 控制項時,資料會顯示在可修改範本的物件中。

如需修改資料範本的範例,請參閱下列主題:

資料範本會儲存為資源,就像任何其他樣式或範本一樣。如果要修改現有資料範本,可以按一下 [資源] 面板之資料範本旁的 [編輯資源] 按鈕。Expression Blend 會進入範本編輯模式,並在 [物件與時間軸] 的下方顯示範本結構。在此編輯模式中,您可以新增範本的控制項,並使用 [屬性] 面板中的資料繫結,將那些控制項的屬性繫結至資料來源的新項目中。

資料行為

除了能夠將屬性拖曳到畫板以繫結到現有物件、建立新的繫結物件,或是設定設計階段資料內容之外,您還可以從 [資料] 面板將命令和方法拖曳到畫板上的物件。

當您將命令拖曳到物件上時,Expression Blend 會建立 InvokeCommandAction 動作來叫用該命令。接著,您可以在 [屬性] 面板中設定物件觸發命令的方式。同樣地,當您將方法拖曳到畫板時,Expression Blend 也會建立可以使用相同方式設定的 CallMethodAction 動作。

如需 InvokeCommandActionCallMethodAction 的詳細資訊,請參閱 InvokeCommandActionCallMethodAction

另請參閱

概念

指定物件的樣式
排列物件

Copyright © 2011 by Microsoft Corporation. All rights reserved.