這是我第一篇關於設計模式方面的文章,以前除了對單例模式等幾個常用的模式有所研究之外,對設計模式不是太重視,總覺得要到一定的程度才需要接觸,
最近的專案中使用了mvvm模式,所以這段時間查閱了大量這方面模式的文章,理論上的東西大家都說的比較好,這裡我也不大談mvvm模式的優勢了,只是
美中不足的是大部分給出的示例中,對於乙個沒有用過mvvm模式的人而言,這些例子總是給人一種摸不著頭緒的感覺,所以我想將我學習mvvm的過程一步步
寫下來,希望對於和我一樣,剛剛接觸mvvm這個模式的人有一點點幫助。
如果你不知道mvvm模式,我建議你先了解一下mvvm模式
,至少要知道實現該模式的意圖是什麼。
那麼我主要通過我認為是已經算是比較簡單的例子進行講解這個模式,當然後面我們會在這個例子的基礎上一步一步的進行擴充套件。
先來看一看我們的專案架構:
很典型的mvvm的分層方式
我們先來構建model,首先在person.cs中簡單宣告了乙個型別
publicclass person
publicstring name
}型別定義好後,我們在persons.cs中得到乙個person的集合
publicclass persons
,
new person,
new person,
};
return person;
}
}那麼這裡我們就簡單的完成了model的工作,下面開始完成viewmodel部分的工作
publicclass pageviewmodel
public pageviewmodel()
}viewmodel也設計的很簡單,只是簡單的獲取了之前定義的集合。
下面就是pageview部分了,這裡用datagrid進行顯示資料
<data:datagrid
autogeneratecolumns="false"
height="200"
itemssource=""
horizontalalignment="left"
margin="36,51,0,0"
name="datagrid1"
verticalalignment="top"
width="200"
>
<data:datagrid.columns
>
<data:datagridtemplatecolumn
>
<data:datagridtemplatecolumn.celltemplate
>
<datatemplate
>
<stackpanel
>
<textblock
height="23"
horizontalalignment="left"
name="textblock1"
text=""
verticalalignment="top"
/>
<textblock
height="23"
horizontalalignment="left"
name="textblock2"
text=""
verticalalignment="top"
/>
stackpanel>
datatemplate>
data:datagridtemplatecolumn.celltemplate>
data:datagridtemplatecolumn>
data:datagrid.columns>
data:datagrid這裡我們將datagrid的源設為human,這樣我們就完成了mvvm模式各個層次的初步構建,關鍵的問題是怎樣將這幾個部分有效的聯絡起來>
我們將pageview,pageviewmodel引入到mainpage中
<usercontrol
xmlns=""
xmlns:x=""
xmlns:d=""
xmlns:mc=""
mc:ignorable="d"
d:designheight="300"d:designwidth="400"
>
<usercontrol.resources
>
<vmmodel:pageviewmodel
x:key="vm"
>
vmmodel:pageviewmodel
>
usercontrol.resources>
<grid
x:name="layoutroot"
background="white"
datacontext=""
>
<viw:pageview
>
viw:pageview
>
grid>
usercontrol這裡的工作就是將pageviewmodel宣告為乙個資源,然後通過頁面引用它,這樣就實現了我們所謂的mvvm模式。>
當然了,這個例子是很簡單的,似乎用mvvm模式未免小題大作,但是實際上,頁面與邏輯分離的情況下,我們改動其中任何乙個部分都是比較清楚的。
好吧,這篇就到這裡
如何在Silverlight中使用Cookie
cookie是我們在瀏覽器中經常用到的乙個儲存方式,他操作簡便容易讀取容易維護,可能有人在想在silverlight中能使用cookie嗎?答案是必然的 下面就讓我來為大家介紹一下在sl中使用cookie的方法吧 建立乙個cookie還會用到我們的老朋友 htmlpage.document 建立co...
Silverlight 中使用中文字型
hongcing.silverlight.font.mainpage xmlns xmlns x 洪星的部落格 aa1 預設字型 fontsize 36 margin 10 洪星的部落格 bb2 微軟雅黑 fontfamily fonts fonts.zip microsoft yahei font...
php中使用mysql介紹 PHP中使用MySQL
mysql資料庫的擴充套件 擴充套件庫基本功能相似,用法基本相同,會增加一些新的特性 mysqli擴充套件庫 只能對mysql資料庫操作 pdo擴充套件 可以操作很多態別的資料庫 wamp下修改mysql資料庫密碼 三者在建立連線上的比較 pdo需要四個引數,除了資料庫管理員名稱 密碼 host 還...