【问题标题】:Databinding with a localizable format string具有可本地化格式字符串的数据绑定
【发布时间】:2016-12-25 12:30:18
【问题描述】:

我正在使用 MvvmCross 在 Xamarin 中制作 Android 应用。

我的 UI 有一个搜索字段和一个按钮。我希望按钮反映搜索字段中的任何内容。因此,如果搜索字段有Alamo Drafthouse,我希望按钮显示Create "Alamo Drafthouse" Venue,但是Create "x" Venue 字符串应该来自strings.xml 文件,以便可以本地化。

我目前的攻击计划是创建一个 ValueConverter,它接受搜索词并进行格式化,使用 ConvertParameter 指定字符串资源的 ID,所以我可以这样做:

<Button local:MvxBind="Text SearchTerm, Converter=FormatResource, ConvertParameter='create_view'" />

其中create_viewstrings.xml 中定义的字符串资源。

我想我应该问问是否有更好的方法来做到这一点。有吗?

【问题讨论】:

    标签: android xamarin xamarin.android mvvmcross


    【解决方案1】:

    如果您希望模板字符串来自strings.xml(来自Android 项目,而不是来自Core/PCL 项目),您可以创建自己的转换器,命名为FormatResourceConverter

     public class FormatResourceConverter: IMvxValueConverter
     {
         public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
         {
             //value would be your draft house
             //parameter would be a name of your string in strings.xml
             var stringValue = ... //get your string from Android string resources 
             return String.Format(stringValue, value);    
         }
    
         public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
         {
             throw new NotImplementedException();
         }
     }
    

    Here is a simple answer how to get string from Android resources in Xamarin.

    【讨论】:

      猜你喜欢
      • 2011-10-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-05
      • 1970-01-01
      • 2012-09-01
      • 2013-03-17
      • 2012-08-25
      相关资源
      最近更新 更多