Vì giao diện người dùng của tôi thường cần phải có chuỗi được bản địa hóa, các mô hình khung nhìn của tôi cung cấp tất cả các chuỗi mà lượt xem sử dụng. Điều này bao gồm những thứ như tiêu đề trên các nút.Các liên kết lưu loát và tiêu đề UIButton
ở phía iOS, tiêu đề nút được đặt thông qua phương pháp SetTitle.
Để có được một chuỗi mô hình xem => tiêu đề nút để hoạt động, MvvmCross thực hiện một số bản dịch ràng buộc ma thuật để làm cho nó hoạt động tốt.
nói rằng tôi có UIButton có tên Foo trong chế độ xem của mình và tôi muốn ánh xạ tiêu đề của nó thành thuộc tính ButtonLabel trong Mô hình chế độ xem của tôi. Trong biết các công việc sau để thiết lập như một ràng buộc:
this.AddBindings(new Dictionary<object, string>() {
{Foo, "Title ButtonTitle"}
});
Can này cùng ràng buộc được thiết lập bằng cách sử dụng hệ thống Binding thạo MvvmCross? Tôi đã đọc qua nguồn MvvmCross và tôi không hoàn toàn nhận được mã ràng buộc.
này sau không làm việc (vì trong thực tế các nút không có một tài sản Tiêu đề - nó có một phương pháp SetTitle):
var set = this.CreateBindingSet<FooView, FooViewModel>();
set.Bind(Foo).For(b => b.Title).To(vm => vm.ButtonTitle);
set.Apply();
Có một cách khác để đạt được kết quả mong muốn sử dụng thạo Bindings?
Đối với chuỗi được bản địa hóa, bạn cũng có thể muốn xem xét chức năng liên kết ngôn ngữ được bản địa hóa - xem https: // speakerdeck.com/cirrious/internationalization-in-mvvmcross và http://slodge.blogspot.co.uk/2013/05/n21-internationalisation-i18n-n1-days.html – Stuart
Thats tuyệt vời. Bạn đã trả lời câu hỏi của tôi và một số câu hỏi khác mà tôi thậm chí không hỏi. – Frank
Stuart cũng đề cập: "nếu bạn nhìn vào [liên kết này] (https://github.com/slodge/MvvmCross-Tutorials/blob/master/CustomBinding/CustomBinding.Droid/Setup.cs) thì bạn sẽ thấy cách chúng tôi thêm thuộc tính ràng buộc 'SpecialProperty' và thuộc tính ràng buộc 'HitThis' vào hệ thống " – Frank