【譯】Silverlight for Windows Phone Toolkit In Depth(六)

來源:互聯網
上載者:User

開篇: Silverlight for Windows Phone Toolkit In Depth(一)

上一篇:Silverlight for Windows Phone Toolkit In Depth(五)

 

ExpanderView

 

概述

ExpanderView是由頭部和可摺疊的下拉項組成的控制項。當使用者點擊頭部時,ExpanderView將摺疊或者開啟。ExpanderView本身是一個簡單的HeaderedItemsControl,提供了大量的屬性和事件用於控制下拉項的開啟和摺疊功能。

 

準備

開始使用ExpanderView必須先在你的項目中添加引用Microsoft.Phone.Controls.Toolkit.dll

Note:在安裝完Toolkit後你可以在下面路徑找到Microsoft.Phone.Controls.Toolkit.dll

For 32-bit systems:

C:\Program Files\Microsoft SDKs\Windows

Phone\v7.1\Toolkit\Oct11\Bin\Microsoft.Phone.Controls.Toolkit.dll 

For 64-bit systems:

C:\Program Files (x86)\Microsoft SDKs\Windows

Phone\v7.1\Toolkit\Oct11\Bin\Microsoft.Phone.Controls.Toolkit.dll  

或者如果你下載了“Silverlight for Windows Phone Toolkit Source & Sample - Nov 2011.zip”,可以直接從“...\Source and Sample\Bin\”目錄下找到

你可以在XAML或C#/VB中建立ExpanderView執行個體

  • 在XAML中定義ExpanderView:你需要添加如下命名空間

注意:確保在你的頁面聲明中包含“toolkit”命名空間!你可以通過Visual Studio Toolbox, Expression Blend Designer或者手動添加。

  • 在C#/VB中建立ExpanderView控制項執行個體:只需要添加如下代碼

 

主要屬性Expander

Expander Object類型屬性,擷取或設定expander對象

樣本:

左邊為摺疊狀態,後邊為開啟狀態

ExpanderTemplate

ExpanderTemplate  DataTemplate類型屬性,擷取或設定該控制項expander的模板

HasItems

HasItems bool類型屬性,擷取或設定一個bool值,該值表示ExpanderView是否包含子項目

IsExpanded

IsExpanded  bool類型屬性,擷取或設定一個bool值,該值表示ExpanderView是否開啟。

IsNonExpandable

IsNonExpandable bool類型屬性,擷取或設定一個bool值,該值表示ExpanderView是否是非擴充的。

NonExpandableHeader

NonExpandableHeader  object類型屬性,擷取或設定當ExpanderView為非擴充的,頭部顯示的對象。

樣本:

NonExpandableHeaderTemplate

NonExpandableHeaderTemplate DataTemplate類型屬性,擷取或設定當ExpanderView為非擴充時,頭部的資料範本。

 

主要事件Expanded

在ExpanderView開啟顯示內容時觸發

樣本:

Collapsed

在ExpanderView摺疊並隱藏內容時觸發

樣本:

 

ExpanderView資料繫結

下面的樣本將示範如何使用資料繫結填充ExpanderView,我們將為比薩店實現一個很簡單的可摺疊菜單,在摺疊狀態下顯示不同種類的比薩餅,在開啟狀態顯示詳細的配料資訊

定義資料來源

下面是建立資料來源的步驟:

第一步:定義資料/業務類

首先定義一個名為“CustomPizza"的資料類,包含如下屬性:

PizzaOption類如下:

第二步:建立一個圖片檔案夾並添加一些圖片

第三步:建立項為CustomPizza類型的集合

 

ExpanderView資料繫結

首先我們需要在頁面資源中添加必要的資料範本

第一步:在頁面資源中定義RelativeTimeConverter,我們用它將“AddedDate”值轉換為合適的字元(如:08/08/2011將轉換為“one month ago”)

第二步:在頁面資源中定義一個自訂HeaderTemplate

第三步:在頁面資源中定義一個自訂的ExpanderTemplate

第四步:在頁面資源中定義一個自訂的ItemTemplate

第五步:在頁面資源中定義一個自訂的NonExpandableHeaderTemplate

第六步:在XAML中添加一個ListBox,用來使用ExpanderView控制項顯示CustomPizza對象的集合。在ItemTemplate中將 “CustomPizza”綁定到ExpanderView,代碼如下:

第七步:設定ListBox的ItemsSource屬性

下面是最終運行結果:

開啟/摺疊全部樣本

這個樣本將示範如何開啟/摺疊上面樣本中所有的ExpanderViews,注意ListBox的每一項都是ExpanderViews。

第一步:添加兩個用於開啟/摺疊全部項的按鈕

第二步:添加如下方法,用於開啟/摺疊ExpanderViews

第三步:在後台代碼中,添加 “btnExpand”單擊事件

第四步:在後台代碼中,添加  “btnCollapse”單擊事件

 

聲明:本人英語水平有限,翻譯有不當的地方還望指正,所有翻譯均是理解性翻譯,與原文不一定相符,出現錯誤翻譯不當,以原文為準,英文好的建議直接閱讀英文原版(也不是太難),著作權歸原作者所有。轉載此文請註明文章出處和作者。

英文原版(第二版):http://www.windowsphonegeek.com/WPToolkitBook2nd

 

致謝:在翻譯過程中園內的許多朋友給予了鼓勵與支援,在此衷心的感謝!您的鼓勵與支援是我翻譯的最大動力,如您有任何意見可以直接在評論中發表,我會認真回複!再次感謝大家!

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.