windows phone中的資料繫結

2022-05-12 23:59:46 字數 1670 閱讀 9003

前幾天寫了乙個繫結資料的小demo

具體實現的內容是:

1、在系統正式啟動時例項化5個資料物件

2、實現在頁面上逐個操作顯示資料  

具體步驟如下:

1、新建乙個專案,新增乙個公共類person,其中含有人的屬性(一依據個人要求寫啦,像姓名、**什麼的)

2、在主頁面的**實現頁面中例項化person類並初始化(直接new person,例項化了5個物件)

3、實現上一張,下一張的**(我用的是if…else…實現的,但要指出,if…else…有點浪費的感覺,可以使用switch實現一樣的**)

4、在主頁面中布局,使用畫布控制項,在畫布控制項中新增乙個image和幾個textblock 

5、新增實現翻頁的按鈕

6、繫結畫布控制項的資料(用的是this.canvas1.datacontext = 例項化的類名)

遇到的問題:

在頁面上逐個操作顯示資料,開始我想的是將當前畫布的類具體化為乙個string,將5個例項化的類名都儲存到乙個string陣列中,

問題出現了1、將當前畫布的類具體化為乙個string,當前畫布的類名是string不代表這就是乙個string,用this.canvas1.datacontext讀到的只是乙個object型別的東西,我又例項化乙個person類,將從canvas中讀到的object賦值給新例項化的person然後讀取名字,但是這個時候讀到的僅僅是strinrg型別,雖然用的是if判斷,且滿足讀取到的string與string陣列中的string相等,用this.canvas1.datacontext=next時只是讓canvas等於乙個string而不是乙個類,所以會出錯

分析好就解決問題,既然用this.canvas1.datacontext讀取到的只是object型別,為什麼我不直接宣告為object型別的陣列呢?果然宣告為object型別的陣列就好用多了,直接將object型別的元素賦值給this.canvas1.datacontext就ok,

具體**:

view code

1

object per = new

object[5

] ;2

object dangqian = this

.canvas1.datacontext;

3object

next;

4for (int i = 0; i < per.length; i++)512

else

1317

}18 }

第二種種方法:

先例項化canvas,將其內容讀取,然後用switch進行劃分和重新賦值,用switch比for效率高

view code

1  person dangqian=new

person ();

2 dangqian = (person)this

.canvas1.datacontext;

3string a=dangqian.name;45

switch

(a)6

第三種方法:

第三種方法,在方法外部宣告乙個例項化的當前類now然後依然用switch分支語句

view code

1

switch

(now.id)

2

Windows Phone 中的彈出視窗

由於目前的silverlight for windows phone 中不支援childwindow,所以當我們想要彈出一些視窗時,只能自己想辦法了。第一種方法是messagebox,相當的簡單,當然你也可以給它加上一些樣式。第二種方法是 檢視silverlight中 childwindow的定義方...

Windows Phone誕生的幕後故事

赫芬頓郵報 the huffington post 評價windows phone時說 太好了。網路雜誌 slate 認為,windows phone系統是智慧型手機系統中最漂亮的。而techcrunch則評價說 wp遠好於大多android手機。長久以來,微軟被視為缺乏創新的科技企業。科技部落格們...

Windows Phone 的控制項傾斜效果

windows phone 7的系統設定裡,按鈕都有乙個點選傾斜的效果,但自己新增的控制項就沒有。但微軟提供了這個效果的 tilteffect msdn的介紹 把裡面的tilteffect.cs新增到自己的專案,改一下這個檔案的命名空間,然後修改要使用傾斜效果的xaml頁面 頭部宣告中新增 xmln...