Ich habe eine Sichtbarkeit Konverter für Listen, die perfekt funktioniert auf Android, aber ich kann nicht die Convert-Methode in iOS aufgerufen werden.MVVMCross iOS benutzerdefinierte Sichtbarkeit Konverter nicht aufgerufen
public class ListVisibilityConverter : MvxBaseVisibilityValueConverter<IList>
{
protected override MvxVisibility Convert(IList value, object parameter, CultureInfo culture)
{
var inverse = false;
if (parameter != null)
{
inverse = (bool)parameter;
}
var listHasEntries = (value != null) && value.Count > 0;
if (inverse)
{
return listHasEntries ? MvxVisibility.Collapsed : MvxVisibility.Visible;
}
else
{
return listHasEntries ? MvxVisibility.Visible : MvxVisibility.Collapsed;
}
}
}
verwende ich den Konverter in einer Bindung innerhalb des ViewDidLoad eines Viewcontroller ...
var set = this.CreateBindingSet<AddFriendsFromContactsViewController, AddFriendsFromContactsViewModel>();
set.Bind(collectionView).For("Visibility").To(vm => vm.SectionedCollection).WithConversion("ListVisibility", true);
set.Bind(noContactsFoundLabel).For("Visibility").To(vm => vm.SectionedCollection).WithConversion("ListVisibility", false);
set.Apply();
In Setup.cs ich den Konverter bestätigt haben, wird mit dem folgenden Code gefunden ...
protected override void InitializeLastChance()
{
base.InitializeLastChance();
var registry = Mvx.Resolve<IMvxValueConverterLookup>();
var f = registry.Find(BindingStrings.ListVisibility);
Mvx.Trace("Custom converter was found : {0}", f != null);
}
Nur bestätigen, dass das 'MvvmCross.Plugin.Visibility' NuGet-Paket in Ihrem iOS-Projekt installiert ist? Haben Sie auch versucht, die App zu säubern/zu deinstallieren und neu aufzubauen/zu implementieren? Gibt es Warnungen/Fehler in der Konsolenausgabe? – Plac3Hold3r
Ich habe eine saubere und deinstallieren, gefolgt von einer Neuerstellung und Bereitstellung. Das Problem wurde nicht gelöst. Ich erhalte den folgenden Fehler in der Konsole - "MvxBind: Warnung: 19.80 Fehler beim Erstellen der Zielbindung für die Bindung der Sichtbarkeit für SectionedCollection". SectionedCollection wird von ObservableCollection abgeleitet. –
Ich habe vergessen zu erwähnen, dass ich auch das richtige NuGet-Paket installiert habe. –