gpt4 book ai didi

silverlight - 绑定(bind)到 Silverlight 中的 const 字段

转载 作者:行者123 更新时间:2023-12-04 17:28:42 25 4
gpt4 key购买 nike

我有一种情况,一些应用程序范围的值被存储为常量——这是一个要求,因为它们在属性定义中是必需的(属性必须在编译时解析,所以即使是静态成员也不起作用)。

我还希望能够在 XAML 文件中重用这些值。所以如果我有这样的常量:

public class MyConstants
{
public const string Constant1 = "Hello World";
}

我想以一种方式将它们绑定(bind)到 XAML 中定义的控件,如下所示:
<TextBlock Text="{Binding MyConstants.Constant1}" />

这可能以直接的方式进行吗?我查看了绑定(bind)示例,但似乎找不到这种情况。

是否有一些我可以做的工作(也许绑定(bind)转换为通过反射动态拉取常量字段的方法的参数)

最佳答案

这是我将采取的方法:-

通过 XAML,我会使用这样的 StaticResource 语法:-

<TextBlock Text="{StaticResource MyConstants_Constant1}" />

在某处创建一个返回 ResourceDictionary 的静态方法并采取 Type作为参数。该函数使用反射来枚举它公开的一组公共(public)常量。它将每个常量的字符串值添加到 ResourceDictionary根据 Type 名称和 Consts 名称制定键名。

在应用程序启动过程中通过 typeof(MyConstants)向这个函数添加返回的 ResourceDictionaries到应用程序资源中的集合 MergedDictionaries属性(property)。

现在所有静态资源都应该正确解析,无需调用任何绑定(bind)或设置任何数据上下文即可使其正常工作。该值在 XAML 分析期间解析。

关于silverlight - 绑定(bind)到 Silverlight 中的 const 字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1941604/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com