В MVVMcross одноразовое привязка данных-это режим, в котором данные переносятся из ViewModel в представление только один раз, когда устанавливается привязка. После этого первоначального передачи привязка не отслеживает изменения и не выполняет никаких обновлений, если сам источник привязки не сброшен. Вот некоторые общие варианты использования для единовременного привязки данных:
1. Статический текст из языковых файлов: одноразовое привязка особенно полезно при настройке статического текста из языковых файлов. Как только язык выбран, пользователь редко его изменяет, поэтому нет необходимости в непрерывных обновлениях. Этот подход помогает поддерживать чистую и эффективную настройку связывания, поскольку он позволяет избежать ненужных проверок на наличие изменений, которые вряд ли произойдут [2].
2. Настраиваемые, но редко меняющиеся данные: для настраиваемых полей, но не склонны часто меняться после того, как они были первоначально установлены, одноразовое привязка может быть полезной. Это включает настройки или данные, которые устанавливаются во время инициализации и остаются постоянными в течение всего времени выполнения приложения.
3. Оптимизация производительности: хотя обычно нет штрафа за производительность за использование односторонних привязков, одноразовые привязки могут еще больше оптимизировать производительность, устраняя любые потенциальные накладные расходы, связанные с обнаружением изменений. Это может быть особенно актуально в сценариях, где, как известно, данные являются статичными и не требуют обновлений.
4. Сокращение ненужных обновлений: в тех случаях, когда данные в основном являются статичными и должны отображаться только один раз, использование единовременного привязки предотвращает ненужные обновления. Это может помочь в уменьшении вычислительных накладных расходов, связанных с частыми проверками изменений, особенно в сложных или интенсивных приложениях.
5. Упрощение условной логики: с помощью единовременного привязки для статических данных разработчики могут упростить условную логику, связанную с макетом экрана или презентацией данных. Это помогает в поддержании более чистой кодовой базы путем отделения динамической обработки данных от статического отображения данных.
Таким образом, одноразовое связывание данных в MVVMcross идеально подходит для сценариев, где данные являются статичными или редко изменяются, что позволяет эффективно и простое представление данных без накладных расходов непрерывного мониторинга изменений.
Цитаты:[1] https://blog.ostebaronen.dk/2018/01/mvvmcross-binding-target.html
[2] https://www.mvvmcross.com/documentation/fundamentals/data-binding
[3] https://www.reddit.com/r/androiddev/comments/ux9379/what_are_the_use_cases_of_data_binding_and_when/
[4] https://www.mvvmcross.com/documentation/advanced/custom-data-binding
[5] https://stackoverflow.com/questions/48910503/binding-mode-onetime-in-mvxrecyclerview
[6] http://stackoverflow.com/questions/10700445/in-mvvmcross-how-do-i-custom.-bind-properties
[7] https://stackoverflow.com/questions/25460030/when-to-use-mvvmcross-data-bindings
[8] https://github.com/mvvmcross/mvvmcross/issues/421
[9] https://learn.microsoft.com/en-us/archive/msdn-magazine/2014/august/windows-phone-build-mvvm-apps-with-xamarin-and-mvvmcross