MVVMcross обрабатывает обновления языковых файлов с использованием единовременного привязки определенным образом, особенно при работе со статическим текстом из языковых файлов. Вот подробное объяснение того, как это работает:
Обзор единовременного привязки в mvvmcross
Однократное привязка в MVVMcross-это режим связывания, который переносит значения из ViewModel в представление. Эта передача возникает только тогда, когда устанавливается источник привязки, и он не активно отслеживает изменения сообщений или события из ViewModel. Как только начальная передача завершена, привязка не выполняет никаких обновлений, если сам источник привязки не сброшен [1].
Обновления языковых файлов обработки языка
При использовании единовременного привязки для языковых файлов MVVMcross обычно устанавливает текст один раз при выборе языка. Это связано с тем, что пользователи часто выбирают язык в начале приложения, и для них неоднократно изменять его. Однако, если язык должен быть обновлен динамически, одноразовое привязка только недостаточно, поскольку он не автоматически обновляет текст при изменении языка.
динамические обновления языка
Для обработки динамических обновлений языка вам обычно нужно реализовать дополнительную логику. Это может включать сброс источника привязки при изменении языка или использовании другого режима привязки, который поддерживает обновления, такие как двустороннее привязка, хотя это реже для статического текста.
с помощью mvvmcross.plugin.resxlocalization
Для управления языковыми файлами MVVMcross предоставляет плагин `mvvmcross.plugin.resxlocalization`, который позволяет хранить строки в` .resx` для разных языков. Этот плагин помогает управлять локализованными строками и может быть интегрирован с контейнером IOC приложения, чтобы обеспечить доступ к локализованным ресурсам от ViewModels и Views [4].
Чтобы обновить язык динамически с помощью этого плагина, вам нужно будет реализовать логику, которая обновляет пользовательский интерфейс при изменении языка. Это может включать в себя ручное обновление текстовых свойств элементов пользовательского интерфейса или использование более динамического подхода к связыванию, который реагирует на языковые изменения.
Заключение
В то время как одноразовое привязка подходит для установления статического текста из языковых файлов изначально, обработка динамических обновлений языка требует дополнительных шагов реализации. MVVMcross предоставляет такие инструменты, как плагин «Resxlocalization» для управления локализованными ресурсами, но вам необходимо реализовать логику для обновления пользовательского интерфейса при изменении языка.
Таким образом, единовременная привязка MVVMcross предназначена не для автоматической обработки языковых обновлений, но с правильной дополнительной логикой и плагинами вы можете достичь динамической поддержки языка в своем приложении.
Цитаты:[1] https://www.mvvmcross.com/documentation/fundamentals/data-binding
[2] https://www.mvvmcross.com/documentation/fundamentals/value-converters
[3] https://www.mvvmcross.com/mvvmcross-5-release/
[4] https://mobileprogrammerblog.wordpress.com/2017/12/30/mvvm-cross-with-xamarin-platform-resx-localization/
[5] https://stackoverflow.com/questions/17156368/
[6] https://stackoverflow.com/questions/60311571/the-inded-purpose-of-mvvmcross-createbindingset
[7] https://www.mvvmcross.com/documentation/plugins/jsonlocalisation
[8] https://www.mvvmcross.com/documentation/fundamentals/linging
[9] https://www.mvvmcross.com/blog/