Trong MVVMcross, các thuật ngữ cần thiết và BindRequired không được áp dụng trực tiếp vì chúng ở ASP.NET Core. Tuy nhiên, việc hiểu vai trò của họ trong ASP.NET Core có thể giúp làm rõ các khái niệm tương tự có thể được áp dụng như thế nào trong MVVMcross.
Bối cảnh cốt lõi ASP.NET
- Bắt buộc: Thuộc tính này đảm bảo rằng một thuộc tính không phải là null hoặc trống sau khi liên kết mô hình đã xảy ra. Nó chủ yếu được sử dụng cho các mục đích xác nhận, đảm bảo rằng các trường bắt buộc được điền vào các biểu mẫu hoặc kịch bản nhập dữ liệu [1] [3] [6].
- BindRequiredAttribution: Thuộc tính này đảm bảo rằng một thuộc tính có mặt trong dữ liệu đến trong quá trình ràng buộc mô hình. Không giống như yêu cầu, nó kiểm tra sự hiện diện của tài sản trong dữ liệu yêu cầu, không chỉ là khả năng vô hiệu của nó [1] [3] [4].
Bối cảnh MVVMCROSS
Trong MVVMcross, trọng tâm là liên kết dữ liệu giữa chế độ xem và ViewModel. Khung không sử dụng các thuộc tính yêu cầu hoặc BindRequired trực tiếp. Thay vào đó, nó dựa vào các chế độ ràng buộc như OneWay hoặc Twoway để quản lý đồng bộ hóa dữ liệu giữa chế độ xem và ViewModel [2] [7].
- Các chế độ ràng buộc trong MVVMCROSS:
- OneWay: Dữ liệu chảy từ ViewModel đến chế độ xem.
- Twoway: Dữ liệu chảy cả hai cách giữa chế độ xem và ViewModel. Đây là chế độ mặc định cho các ràng buộc tùy chỉnh trong MVVMCROSS [7].
Để đạt được chức năng tương tự như được yêu cầu hoặc BindRequired trong MVVMcross, bạn thường thực hiện logic xác thực trong ViewModel của mình hoặc sử dụng các ràng buộc tùy chỉnh để đảm bảo rằng các thuộc tính nhất định được cập nhật chính xác. Ví dụ: bạn có thể sử dụng InotifyPropertyChanged để thông báo cho quan điểm về các thay đổi trong ViewModel, đảm bảo rằng dữ liệu luôn được cập nhật [2] [8].
Thực hiện xác thực trong MVVMCROSS
Mặc dù MVVMcross không hỗ trợ trực tiếp hoặc BindRequired, bạn có thể thực hiện xác thực bằng cách kiểm tra các giá trị null hoặc trống trong các thuộc tính của ViewModel. Điều này có thể được thực hiện thủ công hoặc bằng cách sử dụng các khung xác thực tích hợp với MVVMcross.
Bản tóm tắt
Tóm lại, trong khi bắt buộc và BindRequired là cụ thể cho ASP.NET Core để đảm bảo sự hiện diện và xác thực dữ liệu, MVVMcross dựa vào các cơ chế ràng buộc và logic xác thực tùy chỉnh của nó để quản lý tính toàn vẹn dữ liệu. Nếu bạn cần đảm bảo rằng một số dữ liệu nhất định có mặt hoặc hợp lệ trong MVVMcross, bạn thường sẽ thực hiện logic này trong ViewModel hoặc thông qua các ràng buộc tùy chỉnh.
Trích dẫn:[1] https:
[2] https://blog.ostebaronen.dk/2018/01/mvvmcross-binding-target.html
.
.
[5] https://www.mvvmcross.com/documentation/plugins/methodbinding
[6] https://towardsdev.com/mastering-the-use-of-requiredattribute-a-detailed-comparison-of-required-vs-bindrequired-b3feaf108ef5
[7] https://stackoverflow.com/questions/41768962/mvvmcross-default-binding-mode-used-in-a-project
[8] https://www.mvvmcross.com/documentation/advanced/custom-data-binding