Mvvmcross:与 MvxLang 绑定的文本格式
Mvvmcross: Text format binding with MvxLang
我正在构建原生 Xamarin 应用程序,我正在使用 Mvvmcross 来完成它。这是一个非常好的工具,但我仍在了解它的工作原理。
我在文档中发现您可以使用绑定执行以下操作:
local:MvxBind="Text Format('Line: {0}', Line.Name)"
此处将 Testclass.Name
变量与格式绑定,因此结果将为
Line: TestName
现在我想做同样的事情,但还要计算 translation for Line:
。所以通常要进行翻译,您会执行以下操作。
local:MvxLang="Text Line_Label"
所以我的想法是做这样的事情:
local:MvxLang="Text Format('{0}{1}', Line_Label, Line.Name)"
但不是这样的。有人知道这是否可行以及如何实现吗?
使用西藏绑定local:MvxBind。假设您有:
BaseViewModel.cs
public abstract class BaseViewModel : MvxViewModel
{
public IMvxLanguageBinder TextSource
{
get
{
return new MvxLanguageBinder(
Constants.GeneralNamespace,
GetType().Name);
}
}
}
MainViewModel.cs 继承自 BaseViewModel,字符串 属性 名称:
public string Name => "Radek";
像Stuart的N+1天里的TextProviderBuilder(第21期)https://www.youtube.com/watch?v=VkxHtbJ_Tlk
JSON 带 "MyLabel" 键的翻译文件
{
"MyLabel" : "Your name:"
}
答案:那么Android布局axml文件将包含绑定
local:MvxBind="Text Language(TextSource,'MyLabel') + ' ' + Name; Click NextCommand"
我不知道如何使用 local:MvxLang 执行此操作,但上面的代码可以完成这项工作:)
我正在构建原生 Xamarin 应用程序,我正在使用 Mvvmcross 来完成它。这是一个非常好的工具,但我仍在了解它的工作原理。
我在文档中发现您可以使用绑定执行以下操作:
local:MvxBind="Text Format('Line: {0}', Line.Name)"
此处将 Testclass.Name
变量与格式绑定,因此结果将为
Line: TestName
现在我想做同样的事情,但还要计算 translation for Line:
。所以通常要进行翻译,您会执行以下操作。
local:MvxLang="Text Line_Label"
所以我的想法是做这样的事情:
local:MvxLang="Text Format('{0}{1}', Line_Label, Line.Name)"
但不是这样的。有人知道这是否可行以及如何实现吗?
使用西藏绑定local:MvxBind。假设您有:
BaseViewModel.cs
public abstract class BaseViewModel : MvxViewModel { public IMvxLanguageBinder TextSource { get { return new MvxLanguageBinder( Constants.GeneralNamespace, GetType().Name); } } }
MainViewModel.cs 继承自 BaseViewModel,字符串 属性 名称:
public string Name => "Radek";
像Stuart的N+1天里的TextProviderBuilder(第21期)https://www.youtube.com/watch?v=VkxHtbJ_Tlk
JSON 带 "MyLabel" 键的翻译文件
{ "MyLabel" : "Your name:" }
答案:那么Android布局axml文件将包含绑定
local:MvxBind="Text Language(TextSource,'MyLabel') + ' ' + Name; Click NextCommand"
我不知道如何使用 local:MvxLang 执行此操作,但上面的代码可以完成这项工作:)