中型WPF客户端开发项目总结(3.3.3) - 带修饰符的多语言术语

2022-10-08,,,,

标题可能有点不好理解,我解释一下:

术语指的是常用词汇,比如用户(user)、名称(name)、邮箱(email)等。

修饰符指的是ui上需要呈现`用户:`、`名称:`、`邮箱:`等这些情况。

由于之前已经定义过了用户此类词汇的多语言,如果还需要再对它们带冒号的版本定义一次多语言,这个过程会非常冗余,而且容易出错。如何解决?

1. 定义新的ivalueconverter

1 public class stringexpandcolonconverter : ivalueconverter
2 {
3         public object convert(object value, type targettype, object parameter, cultureinfo culture) => $"{value}{colonstring}";
4         public object convertback(object value, type targettype, object parameter, cultureinfo culture) => throw new notimplementedexception();
5 }

上面的`colonstring`是冒号的多语言变量。

2. 扩展binding

1 public class stringcolonbinding : binding
2 {
3         private static readonly ivalueconverter _converter = new stringexpandcolonconverter();
4         public stringcolonbinding()
5         {
6             converter = _converter;
7             mode = bindingmode.onetime;
8         }
9 }

3. 使用

<textblock text="{mk:stringcolonbinding source={x:static res:resourcecommon.sitestring}}" />

mk是binding扩展所在的命名空间,res是多语言资源文件所在的命名空间。

 

 是不是很方便?^-^

《中型WPF客户端开发项目总结(3.3.3) - 带修饰符的多语言术语.doc》

下载本文的Word格式文档,以方便收藏与打印。