MVVMCross에서, 일회성 데이터 바인딩은 바인딩이 설정 될 때 데이터가 뷰 모델에서 뷰로 한 번만 전송되는 모드입니다. 이 초기 전달 후, 바인딩은 변경 사항을 모니터링하지 않으며 바인딩 소스 자체가 재설정되지 않는 한 업데이트를 수행하지 않습니다. 일회성 데이터 바인딩을위한 몇 가지 일반적인 사용 사례는 다음과 같습니다.
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_the_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-do-custom.-bind-properties
[7] https://stackoverflow.com/questions/25460030/when-to-us-mvvmcross-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