sho*_*ayb 3 c# data-binding silverlight windows-phone-7
这是C#代码
public static class Global
{
public static string Temp
{
get
{
return temp;
}
set
{
temp = value;
}
}
public static string temp="100";
}
Run Code Online (Sandbox Code Playgroud)
这是MainPage的xaml代码
<TextBlock Text="{Binding Path=Temp}" Grid.Column="1" Margin="34,47,32,49" Name="textBlockCheck" />
Run Code Online (Sandbox Code Playgroud)
我在它的构造函数中声明了MainPage.cs中的datacontext:
this.DataContext= Global.Temp;
Run Code Online (Sandbox Code Playgroud)
但是textBlock中没有显示任何内容.在此先感谢您的帮助.
您无法绑定到静态类,因为绑定需要对象实例.
但是,您可以绑定到类的静态属性.
如果您更改Global
为不是静态但将其所有属性保留为静态,则可以使用以下技术.
假设:
namespace StaticBinding
{
public class MyStaticClass
{
private static string myStaticProperty = "my static text";
public static string MyStaticProperty
{
get { return myStaticProperty; }
set { myStaticProperty = value; }
}
}
}
Run Code Online (Sandbox Code Playgroud)
然后,如果您定义以下应用程序资源:
.. xmlns:myns="clr-namespace:StaticBinding"
<Application.Resources>
<myns:MyStaticClass x:Key="MyStaticClassResource" />
</Application.Resources>
Run Code Online (Sandbox Code Playgroud)
然后在您的页面中,您只需执行以下操作:
<TextBlock Text="{Binding Path=MyStaticProperty,
Source={StaticResource MyStaticClassResource}}" />
Run Code Online (Sandbox Code Playgroud)
这甚至会给你智能感知Path
.
这允许您绑定到"全局"静态变量,并使datacontext保持空闲,只包含您希望绑定的任何模型.
归档时间: |
|
查看次数: |
13689 次 |
最近记录: |