綁定在Windows Phone 7的靜態類
原創【51CTO譯文】能夠綁定到一個應用程序的各個部分,這是對全局變量的一個基本要求。人們通常認為這樣的變量是靜態的。
這個問題在論壇上似乎開始流行起來,通常的建議是,包含“全局“變量模型的一部分作為頁面的DataContext使用,或許是不可能的。在模型中進行這樣的功能復制,是不明智的,也是沒有必要的。
它不可能綁定到一個靜態類,因為綁定需要一個對象實例。
當然,你也可以綁定到一個類的靜態屬性。
我們可以綁定下面的靜態屬性
- namespace StaticBinding
- {
- public class MyStaticClass
- {
- private static string myStaticProperty = "my static text";
- public static string MyStaticProperty
- {
- get { return myStaticProperty; }
- set { myStaticProperty = value; }
- }
- }
- }
然后,我們可以創建一個應用程序級別的資源,我們實際上可以綁定到下面的代碼:
- .. xmlns:myns="clr-namespace:StaticBinding"
- <application.resources>
- <mystaticclass x:key="MyStaticClassResource"></mystaticclass>
- </application.resources>
真不好意思,不知道代碼為什么會迫使大寫,我敢肯定你足夠聰明,能分辨出什么應該被大寫。
- ..
- <textblock text="{Binding Path=MyStaticProperty, Source={StaticResource MyStaticClassResource}}">
- ..
- </textblock>
這是一個很好的方面,你甚至可以得到IntelliSense的路徑。(假設你事先設置了“Source”)
原文出處
原文名:Binding to static classes in Windows Phone 7
作者:Matt Lacey
【51CTO.com獨家特稿,非經授權謝絕轉載,合作媒體轉載請注明原文作者及出處!】
【編輯推薦】
- Windows Phone 7設計評測報告
- 微軟發布Windows Phone 7開發者向導
- 信息圖表:Windows Phone 7分析報告
- 使用IronRuby開發Windows Phone 7應用程序
- 不編程也開發 無代碼開發Windows Phone 7應用工具