Ponieważ moje interfejsy użytkownika zazwyczaj muszą mieć zlokalizowane ciągi, moje modele widoku zapewniają wszystkie ciągi, które są wykorzystywane przez widoki. Obejmuje to takie rzeczy jak tytuły na przyciskach.Fluent Bindings i UIButton tytuły
po stronie iOS tytuły przycisków ustawia się za pomocą metody SetTitle.
Aby uzyskać podgląd modelu modelu => mapowanie przycisku, MvvmCross wykonuje pewne magiczne tłumaczenie, aby to działało dobrze.
Powiedz, że mam UIBUTTON o nazwie Foo w moim widoku i chcę odwzorować jego tytuł na właściwość ButtonLabel w moim modelu widoku. W znać następujące prace w celu utworzenia takiego wiązania:
this.AddBindings(new Dictionary<object, string>() {
{Foo, "Title ButtonTitle"}
});
może to samo wiązanie być tworzone przy użyciu Fluent systemu wiąże w MvvmCross? Czytałem przez źródło MvvmCross i nie mam dość wiążącego kodu.
Ten Następujące nie działa (bo w rzeczywistości przycisk nie posiada właściwość Tytuł - ma metodę SetTitle):
var set = this.CreateBindingSet<FooView, FooViewModel>();
set.Bind(Foo).For(b => b.Title).To(vm => vm.ButtonTitle);
set.Apply();
Czy istnieje inny sposób, aby osiągnąć pożądany efekt przy użyciu Fluent Wiązania?
W przypadku zlokalizowanych ciągów można również rozważyć zlokalizowaną funkcję wiązania języka - patrz https: // speakerdeck.com/cirrious/internationalization-in-mvvmcross i http://slodge.blogspot.co.uk/2013/05/n21-internationalisation-i18n-n1-days.html – Stuart
To niesamowite. Odpowiedziałeś na moje pytanie i kilka innych, których nie miałem nawet pytania. – Frank
Stuart wspomniał także: "jeśli spojrzysz na [ten link] (https://github.com/slodge/MvvmCross-Tutorials/blob/master/CustomBinding/CustomBinding.Droid/Setup.cs), zobaczysz, jak dodaj właściwość wiążącą "SpecialProperty" i właściwość wiązania "HitThis" do systemu " – Frank