数据将静态类的字符串变量绑定到Phone 7中的textBlock?
这是C#代码
public static class Global { public static string Temp { get { return temp; } set { temp = value; } } public static string temp="100"; }
这是MainPage的xaml代码
我在其构造函数中声明了MainPage.cs中的datacontext:
this.DataContext= Global.Temp;
但是textBlock中没有显示任何内容。 在此先感谢您的帮助。
您无法绑定到静态类,因为绑定需要对象实例。
但是,您可以绑定到类的静态属性。
如果您将Global
更改为不是静态但将其所有属性保留为静态,则可以使用以下技术。
假设:
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"
然后在您的页面中,您只需执行以下操作:
这甚至可以让你在Path
上智能感知。
这允许您绑定到“全局”静态变量,并仍然使datacontext可以自由地包含您希望绑定到的任何模型。
我认为不支持绑定到静态属性
尝试使类单例并绑定到实例
这可能有所帮助:
http://social.msdn.microsoft.com/Forums/en-IE/wpf/thread/257a41be-8168-401c-a915-cdc44e195a3f
我觉得
this.Text = Global.Temp
您可以使用:
或
谢谢大家的帮助,问题解决了。 实际上你创建了一个简单的类L.
public partial class App : Application { //--------------My Class private static MyClass _class = null; public static MyClass _Class { get { if (_class == null) _class = new MyClass(); return _class; } }
在您要绑定的页面中,在.cs文件的类构造函数中执行此操作
DataContext = App._Class;
最后在你的文件的.xaml版本中写这个来绑定
哪里
值
在Binding中实际上是MyClass类的属性。 🙂
感谢大家!