绑定在Windows Phone 7的静态类


  本文标签:静态类 WindowsPhone7

  能够绑定到一个应用程序的各个部分,这是对全局变量的一个基本要求  。人们通常认为这样的变量是静态的  。

  这个问题在论坛上似乎开始流行起来,通常的建议是,包含“全局“变量模型的一部分​​作为页面的DataContext使用,或许是不可能的  。在模型中进行这样的功能复制,是不明智的,也是没有必要的  。

  它不可能绑定到一个静态类,因为绑定需要一个对象实例  。

  当然,你也可以绑定到一个类的静态属性  。

  我们可以绑定下面的静态属性

  1. namespace StaticBinding  
  2. {  
  3.  
  4. public class MyStaticClass  
  5.    
  6. {  
  7.       
  8. private static string myStaticProperty = "my static text";  
  9.    
  10. public static string MyStaticProperty  
  11.       
  12. {  
  13.         
  14. get { return myStaticProperty; }  
  15.         
  16. set { myStaticProperty = value; }  
  17.       
  18. }  
  19.     
  20. }  
  21.  
  22. } 

  

  然后,我们可以创建一个应用程序级别的资源,我们实际上可以绑定到下面的代码:

  1. .. xmlns:myns="clr-namespace:StaticBinding" 
  2.    
  3.  
  4.     
  5. "MyStaticClassResource">  
  6.  
  7.  

  

  真不好意思,不知道代码为什么会迫使大写,我敢肯定你足够聪明,能分辨出什么应该被大写  。

  1. ..  
  2.  
  3. "{Binding Path=MyStaticProperty, Source={StaticResource MyStaticClassResource}}">  
  4.  
  5. ..  
  6.  
  7.  

  

  这是一个很好的方面,你甚至可以得到IntelliSense的路径  。(假设你事先设置了“Source”)

  原文出处

  原文名:Binding to static classes in Windows Phone 7

  作者:Matt Lacey

【51CTO.com独家特稿,非经授权谢绝转载,合作媒体转载请注明原文作者及出处!】