gpt4 book ai didi

c# - 是否可以将数据绑定(bind)到 Silverlight 中的方法?

转载 作者:太空狗 更新时间:2023-10-29 20:32:20 25 4
gpt4 key购买 nike

我们有一个不使用传统资源文件的动态语言系统;通过语言管理器库从数据库中获取资源。基于遗留 (VB6) 解决方案,它根据控件的标记属性中的资源名称对控件进行语言控制。页面初始化后,我们触发一个方法,该方法采用 LayoutRoot 并递归它的子项应用从控件具有的标签查找的字符串。这被证明是笨拙的,递归例程已经变成了一个怪物来迎合不同控件的微妙之处,我想改为使用数据绑定(bind)来应用字符串。

我意识到我可以为每个控件声明要绑定(bind)的属性,但这将涉及大量代码,我希望有更好的方法。有没有办法绑定(bind)到一个方法,传递一个参数。我设想了一种类似这样的方法。

public string GetResource(string resourceName)
{
string resource = <fetch resource from language manager>;

if (String.IsNullOrEmpty(resource))
{
return resourceName;
}
else
{
return resource;
}
}

我们的应用程序中已经有一个用于此检索的静态方法,它具有以下签名。

public static Resource(string resourceName, string defaultValue)

能够直接使用它会很棒。

最佳答案

你可以使用 value converter然后将参数传递给它以查找资源。绑定(bind)到哪个属性并不一定重要,因为您的值转换器可以忽略该部分并仅使用传递的 ConverterParameter执行资源查找。

然后您可以在 App 资源中创建资源转换器的实例,并在整个应用程序中使用它。

... SomeProperty="{Binding Converter={StaticResource MyAppResourceConverter},
ConverterParameter=SomePropertyResourceName}}" ...

关于c# - 是否可以将数据绑定(bind)到 Silverlight 中的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3195083/

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