十年網(wǎng)站開發(fā)經(jīng)驗 + 多家企業(yè)客戶 + 靠譜的建站團隊
量身定制 + 運營維護+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
WP7數(shù)據(jù)綁定
成都創(chuàng)新互聯(lián)制作網(wǎng)站網(wǎng)頁找三站合一網(wǎng)站制作公司,專注于網(wǎng)頁設(shè)計,網(wǎng)站設(shè)計、成都網(wǎng)站建設(shè),網(wǎng)站設(shè)計,企業(yè)網(wǎng)站搭建,網(wǎng)站開發(fā),建網(wǎng)站業(yè)務(wù),680元做網(wǎng)站,已為千余家服務(wù),成都創(chuàng)新互聯(lián)網(wǎng)站建設(shè)將一如既往的為我們的客戶提供最優(yōu)質(zhì)的網(wǎng)站建設(shè)、網(wǎng)絡(luò)營銷推廣服務(wù)!
基于silverlight的windows phone數(shù)據(jù)綁定,它提供了一種數(shù)據(jù)顯示并與數(shù)據(jù)進行交互的簡便方法,UI元素和數(shù)據(jù)對象之間的綁定使得數(shù)據(jù)可以在兩者之間進行流動,綁定建立之后,如果數(shù)據(jù)出現(xiàn)更改,則綁定到該數(shù)據(jù)的UI元素會自動反映更改,同樣,用戶在UI元素中所做的更改也可以在數(shù)據(jù)對象中反映出來,它的基本過程如圖:
•綁定目標是UI控件,控件必須是FrameworkElement的任何一個DependencyProperty(提供快速的方法計算值,可與其他動態(tài)數(shù)據(jù)交互)。
•綁定來源是將要與綁定目標進行數(shù)據(jù)交互的數(shù)據(jù)。來源可以是任何運行于CLR的對象,包括目標元素本身或者其他UI元素。
•綁定的語法用大括號表示
•三種數(shù)據(jù)流方向:(Mode屬性):
OneTime:一次綁定,在綁定創(chuàng)建時使用源數(shù)據(jù)更新目標,適用于只顯示數(shù)據(jù)而不進行數(shù)據(jù)的更新。
OneWay:單向綁定,在綁定創(chuàng)建時或者源數(shù)據(jù)發(fā)生變化時更新到目標,適用于顯示變化的數(shù)據(jù)。
TwoWay:雙向綁定,在任何時候都可以同時更新源數(shù)據(jù)和目標。
其中默認的是OneWay,即后臺數(shù)據(jù)發(fā)生變化,前臺建立了綁定關(guān)系的相關(guān)控件也會進行更新
下面我們就針對于LIstBox控件來說明一下綁定的具體實現(xiàn)過程,參考代碼如下:
1. 定義數(shù)據(jù)實體:
可以直接定義一個字符串?dāng)?shù)組,可以新建一個實體類,創(chuàng)建一個該類的對象數(shù)組,也可以將實體直接寫到App的Resource中,這個可以根據(jù)實際需要,對于比較大的項目建議采用后面兩種方法,這樣便于以后對項目進行維護,這里面寫的是一個簡單的實體類
- public class Item
- {
- public ImageSource Img { set; get;}
- public string EventType { set; get;}
- public string Note { set; get; }
- }
2. 在*.xmal中利用Binding對象設(shè)置數(shù)據(jù)綁定
我們還可以給ListBox指定列表項的模板ItemTemplate,讓它顯示的比較整齊美觀
3. 后臺*.xmal.cs中定義數(shù)據(jù)源:
- public partial class MainPage : PhoneApplicationPage
- {
- // Constructor
- public MainPage()
- {
- InitializeComponent();
- }
- private void PhoneApplicationPage_Loaded(object sender, RoutedEventArgs e)
- {
- List
- list=new List
- ();//創(chuàng)建一個Item的對象集合
- Item item=new Item();
- item.Img = new BitmapImage(new Uri("ic_sleep.png", UriKind.Relative));
- item.EventType = "sleep";
- item.Note = "9:00~10:30";
- list.Add(item);
- item = new Item();
- item.Img = new BitmapImage(new Uri("ic_breastfed.png", UriKind.Relative));
- item.EventType = "breastfed";
- item.Note="10:40~10:55";
- list.Add(item);
- item=new Item();
- item.Img = new BitmapImage(new Uri("ic_diaper.png", UriKind.Relative));
- item.EventType = "Diaper";
- item.Note = "Haha";
- list.Add(item);
- item = new Item();
- item.Img = new BitmapImage(new Uri("ic_growth.png", UriKind.Relative));
- item.EventType = "Growth";
- item.Note = "Happy";
- list.Add(item);
- listBox1.ItemsSource = list; //將list集合中的數(shù)據(jù)對象添加到ListBox控件的對應(yīng)的列表項中
- }
- }
- }
Windows Phone開發(fā)中大部分控件都可以實現(xiàn)數(shù)據(jù)綁定,在使用Binding對象將數(shù)據(jù)源與UI控件進行數(shù)據(jù)綁定之前,建議大家在大致了解綁定過程的基礎(chǔ)上,首先熟悉一下各個控件的相關(guān)屬性及使用方法,這樣可能會使代碼更加簡潔,同時也應(yīng)該掌握一下頁面布局的設(shè)計,使數(shù)據(jù)顯示的效果更加Nice。大家可以自己先寫一個簡單的小例子來實現(xiàn)數(shù)據(jù)綁定,了解綁定的大致過程之后,然后逐漸向周圍的其他控件進行擴展。目前我自己也是一個WP7的初學(xué)者,學(xué)習(xí)過程中在這里只是小小總結(jié)一下,希望不對的地方大家多多給予指正~~