MVVMCROSS在iOS中更改语言

时间:2014-09-29 09:01:48

标签: ios xamarin mvvmcross

我试图在iOS中使用mvvmcross实现多语言支持。 "语言"存储在核心(可移植库类)中的.resx文件中。

所以在android方面它的效果很好......我只需调用recreathe() - 方法来重建视图。

我可以在iOS或MVVMCROSS-Library中调用一些类似的方法吗?我用几种方法进行了很多实验,但没有取得任何成功。

我知道如何手动制作:

  • 删除所有子视图
  • 为每个已删除的子视图创建新实例
  • 再次进行绑定
  • 将视图添加回子视图

但老实说,这不可能是它的方式。 有人提出更圆滑的建议吗?

1 个答案:

答案 0 :(得分:2)

如果你的视图使用绑定(就像我描述的here)来显示字符串值的本地化版本,你唯一需要做的就是调用 视图模型上的RaisePropertyChanged(string.empty)RaiseAllPropertiesChanged()

当用户更改语言时,您可以广播一条消息(使用MvmCross messenger),所有语言感知视图模型都会监听该消息,并且在处理此消息时,视图模型可以调用RaisePropertyChanged(string.empty)或{视图模型上的{1}}