MVVMCross에서 일회성 바인딩을 사용하면 다른 시나리오에서 다른 바인딩 모드에 비해 몇 가지 이점이 있습니다.
1. 오버 헤드 감소 : 한 번의 바인딩은 변경 사항을 지속적으로 모니터링하지 않고도 뷰 모델에서 뷰로 한 번만 값을 설정해야 할 때 유용합니다. 이렇게하면 프레임 워크가 뷰 모델에서 업데이트를들을 필요가 없기 때문에 바인딩 유지 보수와 관련된 오버 헤드가 줄어 듭니다. 이것은 언어 파일의 텍스트와 같이 설정되면 변경되지 않는 정적 데이터에 특히 유리합니다 [1] [3].
2. 재활용 뷰의 성능 :`MVXRecyClerview '와 같은 재활용 뷰에서 일회성 바인딩이 문제가 될 수 있지만, 뷰가 재활용되지 않거나 데이터가 정적이며 동적으로 업데이트 될 필요가없는 시나리오에 이상적입니다. 그러나, 뷰가 재활용되는 경우, 뷰가 화면에 나타날 때 뷰가 재사용되고 반등하기 때문에 일회성 바인딩이 예상대로 작동하지 않을 수 있습니다 [7].
3. 단순화 된 바인딩 인프라 : 일회성 바인딩은 바인딩 컨텍스트가 변경 될 때만 업데이트되므로 소스 속성 변경을 모니터링 할 필요성을 제거하여 바인딩 인프라를 단순화합니다. 이로 인해 클리너 코드와 지속적인 업데이트와 관련된 잠재적 문제가 줄어 듭니다 [4].
4. 읽기 전용 데이터에 적합 : 일회성 바인딩은 초기화 시간에 알려져 있고 변경되지 않는 읽기 전용 데이터를 표시하는 데 적합합니다. 여기에는 데이터가 한 번 설정되고 추가 업데이트가 필요하지 않은 식당 시간과 같은 정적 정보를 보여주는 것과 같은 시나리오가 포함됩니다 [3].
5. 정적 데이터와의 일관성 : 특정 데이터가 정적이고 자주 변경되지 않는 응용 분야에서 일회성 바인딩은 불필요한 업데이트 없이이 데이터를 올바르게 설정하도록합니다. 이것은 연속 모니터링의 오버 헤드없이 UI에서 일관성을 유지합니다 [1] [3].
요약하면, MVVMCross의 일회성 바인딩은 지속적인 업데이트가 필요하지 않은 정적 데이터를 처리 할 때 유리하며 오버 헤드 감소 및 단순화 된 바인딩 관리를 제공합니다. 그러나 동적 또는 자주 변화하는 데이터 또는 뷰가 재활용되는 시나리오에는 적합하지 않을 수 있습니다.
인용 :[1] https://www.mvvmcross.com/documentation/fundamentals/data-binding
[2] https://stackoverflow.com/questions/41768962/mvvmcross-default-binding-mode-us-a-project
[3] https://stackoverflow.com/questions/25460030/when-to-use-mvvmcross-bindings
[4] https://learn.microsoft.com/en-us/dotnet/maui/fundamentals/data-binding/binding-mode?view=net-maui-9.0
[5] https://www.mvvmcross.com/documentation/advanced/custom-data-binding
[6] https://stackoverflow.com/questions/17156368/
[7] https://stackoverflow.com/questions/48910503/binding-mode-onetime-in-mvxrecyclerview
[8] https://learn.microsoft.com/en-us/archive/msdn-magazine/2014/august/windows-phone-build-mvvm-apps-with-xamarin-and-mvvmcross
[9] https://www.mvvmcross.com/documentation/fundamentals/viewmodel-lifecycle