是否有可能将数据绑定到Silverlight中的某个方法?
我们有一个不使用传统资源文件的动态语言系统; 而是通过语言管理器库从数据库获取资源。 基于传统(VB6)解决方案,它的语言根据控件的标签属性中的资源名称进行控制。 在页面初始化之后,我们引发一个采用LayoutRoot的方法,并递归它的子应用字符串的控件从标签中查找字符串。 这被证明是笨拙的,递归例程变成了怪物来迎合不同控件的微妙之处,我想改为使用数据绑定来应用字符串。
我意识到我可以声明属性来绑定到每个控件,但这将涉及大量代码,我希望有更好的方法。 有没有办法绑定到一个方法,传递一个参数。 我设想了一个像这样的方法。
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)
为了能够直接使用它会很好。
你可以使用一个值转换器,然后传递一个参数来查找资源。 绑定的属性并不一定重要,因为您的值转换器可能会忽略该部分,只是使用传递的ConverterParameter
来执行资源查找。
然后,您可以在应用程序资源中创建资源转换器的实例,并在整个应用程序中使用它。
... SomeProperty="{Binding Converter={StaticResource MyAppResourceConverter},
ConverterParameter=SomePropertyResourceName}}" ...
链接地址: http://www.djcxy.com/p/46701.html
上一篇: Is it possible to data bind to a method in Silverlight?
下一篇: Returning JSON from ASMX, and handling it correctly in Javascript