WP7數(shù)據(jù)綁定
成都創(chuàng)新互聯(lián)制作網(wǎng)站網(wǎng)頁(yè)找三站合一網(wǎng)站制作公司,專(zhuān)注于網(wǎng)頁(yè)設(shè)計(jì),網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè),網(wǎng)站設(shè)計(jì),企業(yè)網(wǎng)站搭建,網(wǎng)站開(kāi)發(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ò)營(yíng)銷(xiāo)推廣服務(wù)!
基于silverlight的windows phone數(shù)據(jù)綁定,它提供了一種數(shù)據(jù)顯示并與數(shù)據(jù)進(jìn)行交互的簡(jiǎn)便方法,UI元素和數(shù)據(jù)對(duì)象之間的綁定使得數(shù)據(jù)可以在兩者之間進(jìn)行流動(dòng),綁定建立之后,如果數(shù)據(jù)出現(xiàn)更改,則綁定到該數(shù)據(jù)的UI元素會(huì)自動(dòng)反映更改,同樣,用戶在UI元素中所做的更改也可以在數(shù)據(jù)對(duì)象中反映出來(lái),它的基本過(guò)程如圖:
•綁定目標(biāo)是UI控件,控件必須是FrameworkElement的任何一個(gè)DependencyProperty(提供快速的方法計(jì)算值,可與其他動(dòng)態(tài)數(shù)據(jù)交互)。
•綁定來(lái)源是將要與綁定目標(biāo)進(jìn)行數(shù)據(jù)交互的數(shù)據(jù)。來(lái)源可以是任何運(yùn)行于CLR的對(duì)象,包括目標(biāo)元素本身或者其他UI元素。
•綁定的語(yǔ)法用大括號(hào)表示
•三種數(shù)據(jù)流方向:(Mode屬性):
OneTime:一次綁定,在綁定創(chuàng)建時(shí)使用源數(shù)據(jù)更新目標(biāo),適用于只顯示數(shù)據(jù)而不進(jìn)行數(shù)據(jù)的更新。
OneWay:?jiǎn)蜗蚪壎?,在綁定?chuàng)建時(shí)或者源數(shù)據(jù)發(fā)生變化時(shí)更新到目標(biāo),適用于顯示變化的數(shù)據(jù)。
TwoWay:雙向綁定,在任何時(shí)候都可以同時(shí)更新源數(shù)據(jù)和目標(biāo)。
其中默認(rèn)的是OneWay,即后臺(tái)數(shù)據(jù)發(fā)生變化,前臺(tái)建立了綁定關(guān)系的相關(guān)控件也會(huì)進(jìn)行更新
下面我們就針對(duì)于LIstBox控件來(lái)說(shuō)明一下綁定的具體實(shí)現(xiàn)過(guò)程,參考代碼如下:
1. 定義數(shù)據(jù)實(shí)體:
可以直接定義一個(gè)字符串?dāng)?shù)組,可以新建一個(gè)實(shí)體類(lèi),創(chuàng)建一個(gè)該類(lèi)的對(duì)象數(shù)組,也可以將實(shí)體直接寫(xiě)到App的Resource中,這個(gè)可以根據(jù)實(shí)際需要,對(duì)于比較大的項(xiàng)目建議采用后面兩種方法,這樣便于以后對(duì)項(xiàng)目進(jìn)行維護(hù),這里面寫(xiě)的是一個(gè)簡(jiǎn)單的實(shí)體類(lèi)
- public class Item
- {
- public ImageSource Img { set; get;}
- public string EventType { set; get;}
- public string Note { set; get; }
- }
2. 在*.xmal中利用Binding對(duì)象設(shè)置數(shù)據(jù)綁定
我們還可以給ListBox指定列表項(xiàng)的模板ItemTemplate,讓它顯示的比較整齊美觀
3. 后臺(tái)*.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)建一個(gè)Item的對(duì)象集合
- 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ù)對(duì)象添加到ListBox控件的對(duì)應(yīng)的列表項(xiàng)中
- }
- }
- }
Windows Phone開(kāi)發(fā)中大部分控件都可以實(shí)現(xiàn)數(shù)據(jù)綁定,在使用Binding對(duì)象將數(shù)據(jù)源與UI控件進(jìn)行數(shù)據(jù)綁定之前,建議大家在大致了解綁定過(guò)程的基礎(chǔ)上,首先熟悉一下各個(gè)控件的相關(guān)屬性及使用方法,這樣可能會(huì)使代碼更加簡(jiǎn)潔,同時(shí)也應(yīng)該掌握一下頁(yè)面布局的設(shè)計(jì),使數(shù)據(jù)顯示的效果更加Nice。大家可以自己先寫(xiě)一個(gè)簡(jiǎn)單的小例子來(lái)實(shí)現(xiàn)數(shù)據(jù)綁定,了解綁定的大致過(guò)程之后,然后逐漸向周?chē)钠渌丶M(jìn)行擴(kuò)展。目前我自己也是一個(gè)WP7的初學(xué)者,學(xué)習(xí)過(guò)程中在這里只是小小總結(jié)一下,希望不對(duì)的地方大家多多給予指正~~