MVVMCROSS.PLUGIN.FIELDBINDING PLUGIN은 MVVMCross의 RIO 바인딩 확장의 일부이며, 필드를 속성과 함께 데이터 소스로 사용할 수 있도록 데이터 바인딩 기능을 향상 시키도록 설계되었습니다. 이 플러그인의 주요 기능은 다음과 같습니다.
1. 필드 기반 데이터 바인딩 : 전통적으로 MVMCROSS 데이터 바인딩은 속성에 의존합니다. 그러나 FieldBinding 플러그인을 사용하면 ViewModel의 공공 필드를 데이터 바인딩 소스로 사용할 수 있습니다. 이 유연성은 속성이 필요하지 않고 필드에 직접 바인딩하려는 경우 특히 유용합니다 [1] [4].
2. inotifyChanged 필드에 대한 지원 : 플러그인은 동적 필드에 'inotifyChanged`의 사용을 지원합니다. 이는 필드가 'inotifyPropertyChanged'의 속성과 비슷한 것과 유사한 필드가 UI에 변경 사항에 대해 알릴 수 있음을 의미합니다. 이것은`inc` (notify 변경)과 같은 클래스를 사용하여 달성되며, 이는 관찰 가능한 필드를 생성하는 데 사용할 수 있습니다 [1].
3. 호환성 및 플랫폼 지원 : FieldBinding 플러그인은 순수한 .NET 표준 플러그인으로 Xamarin iOS, Xamarin Android, Xamarin Forms, Windows 및 Mac을 포함한 MVMCross가 지원하는 다양한 플랫폼에서 호환됩니다 [1] [7].
4. 다른 플러그인과의 통합 : Fieldbinding 플러그인은 MVVMCross.plugin.all 패키지와 같은 다른 MVMCROSS 플러그인과 MVVMCROSS 플러그인 및 MVVMCROSS.PLUGINS.VALIDATION.FORFIELDBINDING을 포함하여 필드 바인딩에 대한 검증 지원을 제공 할 수 있습니다.
5. ViewModels의 사용 : ViewModels에서`inc '와 같은 클래스를 사용하여 필드를 정의하고 UI 요소에 직접 바인딩 할 수 있습니다. 예를 들어,`public readonly inc id = new NC ();`와 같은 필드를 생성하고 MVVMCross 바인딩 구문 [1]을 사용하여 UI 구성 요소에 바인딩 할 수 있습니다.
6. 바인딩 구문 : 플러그인은 Android 용 XML 기반 바인딩 및 iOS와 같은 플랫폼에 대한 유창한 바인딩을 포함한 다양한 바인딩 구문을 지원합니다. 예를 들어,``local : mvxbind = 'text firstName'` [1] [4]와 같은 XML을 사용하여 Android에서'textView '를 바인딩 할 수 있습니다.
전반적으로 MVVMCross.plugin.fieldBinding 플러그인은 필드를 사용하여 특정 시나리오를 단순화하고 코드 가독성을 향상시켜 데이터 바인딩에보다 유연한 접근 방식을 제공합니다.
인용 :[1] https://www.mvvmcross.com/documentation/plugins/fieldbinding
[2] https://www.mvvmcross.com/documentation/advanced/customizing-using-app-and-setup
[3] https://www.mvvmcross.com/mvvmcross-5-release/
[4] https://www.mvvmcross.com/documentation/fundamentals/data-binding
[5] https://www.mvvmcross.com/documentation/fundamentals/viewmodel-lifecycle
[6] https://github.com/mvvmcross/mvvmcross/issues/2607
[7] https://www.nuget.org/packages/mvvmcross.plugin.fieldbinding/
[8] https://www.mvvmcross.com/documentation/fundamentals/logging-new