zoukankan      html  css  js  c++  java
  • 中型WPF客户端开发项目总结(3.3.3)

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

    术语指的是常用词汇,比如用户(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是多语言资源文件所在的命名空间。

     是不是很方便?^-^

  • 相关阅读:
    输入输出、基本运算符、流程控制
    Node学习6-fs模块
    Node学习5-events模块
    Node学习4-Buffer模块
    Node学习3-Path模块
    Node学习2-基础知识/HelloWorld/模块调用/global/process
    Node学习1-基本概念
    gulp/bower/less知识
    AngularJS学习1-基础知识
    JavaScript学习-类/原型链/class
  • 原文地址:https://www.cnblogs.com/godlessspirit/p/12694674.html
Copyright © 2011-2022 走看看