Dav*_*vid 5 data-binding silverlight silverlight-3.0
我有一种情况,其中一些应用程序范围的值存储为常量 - 这是一个要求,因为它们在属性定义中是必需的(属性必须在编译时解析,因此即使静态成员也不起作用).
我希望也能够在XAML文件中重用这些值.所以,如果我有这样的常量:
public class MyConstants
{
public const string Constant1 = "Hello World";
}
Run Code Online (Sandbox Code Playgroud)
我想以一种方式将它们绑定到XAML中定义的控件,如下所示:
<TextBlock Text="{Binding MyConstants.Constant1}" />
Run Code Online (Sandbox Code Playgroud)
这可能是直接的吗?我查看了绑定示例,但似乎无法找到这种情况.
可能会有一些我可以做的工作(可能绑定转换为通过反射动态拉动常量字段的方法的参数)
这是我要采取的方法: -
通过XAML,我会使用如下的StaticResource语法: -
<TextBlock Text="{StaticResource MyConstants_Constant1}" />
Run Code Online (Sandbox Code Playgroud)
在某处创建一个静态方法,返回a ResourceDictionary并将其Type作为参数.该函数使用反射来枚举它公开的公共常量集.它将每个常量的字符串值添加到ResourceDictionary从类型名称和Consts名称中制定键名称.
在应用程序启动期间,传递typeof(MyConstants)给此函数将返回的内容添加ResourceDictionaries到Application Resources MergedDictionaries属性中的集合中.
现在所有静态资源都应该正确解析,不需要调用任何绑定或设置任何datacontext以使其工作.在XAML解析期间解析该值.
| 归档时间: |
|
| 查看次数: |
2245 次 |
| 最近记录: |