繁体   English   中英

WPF 中 class 的默认值转换器

[英]Default ValueConverter for a class in WPF

我即将开始我的一个新项目,目前正在评估一些本地化、模块化等技术。

我(至少在我看来)有一个非常好的本地化方法,但现在我很难找到一个好的数据绑定解决方案。

我想将文本字段等(通常是 UIElements)的值绑定到表单的 DataContext 中的特定方法。 该方法如下所示:

public void GetValue(string name)

其中 name 是“节点/子节点/子子节点”形式的“路径”。 我考虑过使用 ValueConverter 进行绑定,到目前为止效果还不错。

我的绑定表达式如下所示:

{Binding Path=Localization, Converter={StaticResource LocalizationConverter}, ConverterParameter=PrismBreak/Shell.xaml/New}

我认为这个绑定表达式虽然完成了它的工作,但对于每个 UIElement 来说都有些夸张了。 所以我想是否可以为某种类型定义一个默认的 ValueConverter (--> 每当该类型绑定到使用 ValueConverter 的某个地方时)。

WPF 有可能吗?

如果不可能,是否有任何其他好方法可以绑定到具有动态参数的方法?

在此先感谢并致以最诚挚的问候,

克里斯

对 WPF 进行本地化的规定方法是在卫星组件中创建本地化 BAML; 这是通过将x:Uid附加属性添加到您希望本地化的元素来实现的。 MSDN 上有一个很好的WPF 全球化和本地化部分描述了这些技术。

我建议的另一种方法是创建一个 static 'Localization Dictionary' 类型,并实现ICustomTypeDescriptor ,将传入的属性绑定重定向到字典中的字符串。 你最终可能会做这样的事情:

<Button Content="
    {Binding Source={x:Static local:MyStaticType.Localization}, 
             Path=HelloButtonTitle}" /> 

您可以继续利用现有技术,例如 RESX + Satellite 程序集。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM