成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

淺談ListBox在Windows Phone 7中的使用

移動(dòng)開發(fā)
在Windows Phone 7 中頁(yè)面的布局一般分為:Panoramic、Pivot、List和Full Screen。而通常List的實(shí)現(xiàn)方式就是ListBox。本文介紹了ListBox的基礎(chǔ)知識(shí)。

在Windows Phone 7 中頁(yè)面的布局一般分為:Panoramic、Pivot、List和Full Screen。而通常List的實(shí)現(xiàn)方式就是ListBox。

一、什么是ListBox?

ListBox 是一個(gè)顯示項(xiàng)集合的控件。一次可以顯示 ListBox 中的多個(gè)項(xiàng)。

ListBox繼承自ItemsControl,可以使用Items或者ItemsSource設(shè)置其內(nèi)容。

二、在ListBox中顯示數(shù)據(jù)

我們可以通過(guò)兩種方式在ListBox中顯示:直接內(nèi)嵌ListBoxItem(或其他UIElement,如TextBlock等) 與數(shù)據(jù)綁定(90%情況下均為數(shù)據(jù)綁定實(shí)現(xiàn))。

1.直接內(nèi)嵌ListBox示例代碼如下:

2.數(shù)據(jù)綁定的示例代碼如下:

XAML代碼 :

后置代碼:

最終的現(xiàn)實(shí)效果都是一樣的,如下圖:

三、 如果獲取ListBox的ItemTemplate/DataTemplate 中指定的控件

當(dāng)我們使用數(shù)據(jù)綁定的控件,比如說(shuō)ListBox,我們通常會(huì)自定義ListBox的模板(一般建議使用Blend工具修改模板),而在某些情況下,我們需要獲取DataTemplate中的某一控件,以對(duì)其做一些特定的操作。那我們?nèi)绾潍@取呢?事實(shí)上,我們可以使用VisualTreeHelper 類來(lái)獲取指定的控件。下面是具體的Demo:

前臺(tái)XAML代碼:

后置代碼代碼:

四、ListBox 性能相關(guān)

在Silverlight中,為了將數(shù)據(jù)顯示給用戶,我們需要加載數(shù)據(jù)和綁定數(shù)據(jù),但是哪個(gè)會(huì)導(dǎo)致性能問(wèn)題呢?答案是:根據(jù)你的數(shù)據(jù)類型以及界面(UI)的復(fù)雜性而定。

通常,加載數(shù)據(jù)可以在UI線程或者后臺(tái)線程中實(shí)現(xiàn),數(shù)據(jù)存在的形式也不經(jīng)相同,有的序列化為二進(jìn)制數(shù)據(jù),有的序列化為XML文件,有的則是圖片形式存在等等。而數(shù)據(jù)綁定又有三種不同的綁定形式:一次綁定(One Time)、單向綁定(One Way)和雙向綁定(Two Way)。

這里簡(jiǎn)單介紹下什么是VSP(VirtualizingStackPanel)

MSDN解釋為:將內(nèi)容排列和虛擬化在一行上,方向?yàn)樗交虼怪薄?ldquo;虛擬化”是指一種技術(shù),通過(guò)該技術(shù),可根據(jù)屏幕上所顯示的項(xiàng)來(lái)從大量數(shù)據(jù)項(xiàng)中生成user interface (UI) 元素的子集。僅當(dāng) StackPanel 中包含的項(xiàng)控件創(chuàng)建自己的項(xiàng)容器時(shí),才會(huì)在該面板中發(fā)生虛擬化。 可以使用數(shù)據(jù)綁定來(lái)確保發(fā)生這一過(guò)程。 如果創(chuàng)建項(xiàng)容器并將其添加到項(xiàng)控件中,則與 StackPanel 相比,VirtualizingStackPanel 不能提供任何性能優(yōu)勢(shì)。

VirtualizingStackPanel 是 ListBox 元素的默認(rèn)項(xiàng)宿主。 默認(rèn)情況下,IsVirtualizing 屬性設(shè)置為 true。當(dāng) IsVirtualizing 設(shè)置為 false 時(shí),VirtualizingStackPanel 的行為與普通 StackPanel 一樣。

我們可以將VSP理解為當(dāng)需要時(shí),VSP會(huì)生成容器對(duì)象,而當(dāng)對(duì)象不在可視范圍內(nèi)時(shí),VSP就把這些對(duì)象從內(nèi)存中移除。當(dāng)ListBox很想當(dāng)大數(shù)據(jù)量的項(xiàng)目時(shí),我們不需要將不在可視范圍中的對(duì)象加載到內(nèi)存中,從而解決了內(nèi)存的問(wèn)題。另外VSP有一個(gè)屬性CacheMode設(shè)置緩存表示形式,默認(rèn)設(shè)為Standard。當(dāng)我們需要循環(huán)顯示,可以將其設(shè)置為Recycling。

在ListBox中使用VSP來(lái)進(jìn)行數(shù)據(jù)虛擬化時(shí),我們需要注意以下幾點(diǎn):

1. 確保在DataTemplate 中的容器(如Grid)大小固定

2. 在數(shù)據(jù)對(duì)象可以提供相應(yīng)值時(shí),盡量避免使用復(fù)雜的轉(zhuǎn)換器(Converter)

3. 不要在ListBox中內(nèi)嵌ListBox

4. 強(qiáng)烈推薦不要在DataTemplate中使用用戶控件

5. 在DataTemplate中不要使用自定義控件

責(zé)任編輯:佚名 來(lái)源: 博客園
相關(guān)推薦

2010-04-08 17:40:23

Windows Pho

2012-05-08 13:54:40

ToastPrompt

2010-12-01 13:40:13

樞軸控件Windows Pho

2010-10-11 14:42:49

Windows Pho

2010-12-01 13:55:29

地圖插件Windows Pho

2012-02-02 17:16:11

Windows PhoC#聯(lián)系人資料

2012-05-23 15:46:39

數(shù)字羅盤

2010-11-26 16:00:08

Windows Pho

2013-07-30 11:18:37

Windows PhoWindows Pho

2011-02-13 09:17:01

Windows 8Windows Pho

2010-05-05 13:16:02

Windows PhoWindows CE

2010-03-26 18:08:18

Windows Pho

2010-12-01 09:50:21

全景視圖Windows Pho

2010-10-20 16:47:06

MarketplaceWindows Pho

2011-03-21 09:05:40

IronRubyWindows Pho

2010-12-21 10:02:48

SilverlightWindows Pho

2011-06-08 09:43:15

Windows Pho

2010-10-25 14:07:55

Windows Pho

2010-07-21 14:56:21

Windows Pho

2011-06-07 11:35:38

Windows Pho
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 国产视频中文字幕 | 天堂在线www | 欧美不卡在线 | 久久精品欧美电影 | 天天干天天谢 | 国产精品乱码一区二三区小蝌蚪 | 久久精品中文字幕 | 四虎影音 | 久久福利网站 | 91伊人 | 国产精品揄拍一区二区久久国内亚洲精 | 国产精品毛片无码 | 一级毛片免费 | 成人久久| 18av在线播放 | 91精品久久久久久久久中文字幕 | 视频在线一区二区 | 在线精品一区 | 欧美精品一区二区三区在线播放 | 成人免费在线 | 九九热精品在线 | av av在线| 亚洲精品888| 国产欧美精品区一区二区三区 | 国产999精品久久久久久绿帽 | 日韩精品一区二区三区中文在线 | 中日韩欧美一级片 | 久久精品国产99国产精品 | 久草网址 | 久久久久久久91 | 亚洲va欧美va天堂v国产综合 | 欧美一级在线 | 欧美高清免费 | 国产精品毛片一区二区在线看 | 午夜男人免费视频 | 91综合在线观看 | 91av在线电影 | 亚洲精品久久 | 欧美成视频 | 福利片在线看 | 精品国产精品一区二区夜夜嗨 |