天天看點

[WPF/Silverlight]簡單說下CLR Property與WPF Dependency Property的差別

總所周知,在.Net架構下要實作某些特定功能通常都會有n種不同的方式,使用“屬性(Property)”就是其中之一。你既可以使用CLR Property也可以使用Dependency Property。

如果你對這兩樣東西尚不熟悉的話,就讓我們先來簡單的介紹一下它們。先來瞧瞧我們在.Net中最經常使用的CLR Property:

嗷嗷熟悉吧?

Dependency Properties是幾年前在WPF中提出的概念,後來被順延到Silverlight中(WPF/E嘛)。

CLR Porperty明顯更有通俗易懂,至少它比較好記。相比之下即使對于一個WPF或Silverlight老手來說,要學習聲明一個DependencyProperty也要麻煩的多了。

我們可以通過在Blend中通過“生成屬性”的功能觀察這兩種屬性的不同進而對其進行一個大概的了解。比如生成一個CLR Property時:

如圖,很多指令選項被灰顯禁用,下面看看Dependency Property

如圖,它不但保留了CLR Property的所有功能,而且還增加了轉換成資源以及資料關聯的支援,當然操作一段動畫也不在話下。

起立,鼓掌,下回見!

本文轉自紫色永恒51CTO部落格,原文連結:http://www.cnblogs.com/024hi/archive/2009/02/20/1395192.html ,如需轉載請自行聯系原作者