Ich habe in letzter Zeit für ein Projekt in Xamarin Forms gearbeitet, und ich habe die TableView verwendet, um Details eines Datensatzes anzuzeigen, der aus Web API abgerufen wurde. Manchmal sind bestimmte Details nicht vorhanden, daher möchte ich den Abschnitt ausblenden, in dem die Informationen angezeigt werden.Wie verbirg ich eine TableSection mit XAML in Xamarin Forms?
Allerdings kann ich keine Möglichkeit finden, die TableSection zu verbergen.
Hier einige XAML:
<TableView>
<TableRoot>
...
<!--Contact info-->
<TableSection IsVisible="{Binding HasContact}" Title="Contact">
<!--Contact name-->
<TextCell Text="{Binding ContactName}" Detail="Primary contact" />
<!--Phone-->
<TextCell Text="Phone"
Detail="{Binding FormattedContactPhoneNumber}"
Command="{Binding BindingContext.DialPhoneCommand, Source={x:Reference MainGrid}}"
CommandParameter="{Binding ContactPhoneNumber}"/>
<!--Email-->
<TextCell Text="Email"
Detail="{Binding ContactEmail}"
Command="{Binding BindingContext.SendEmailCommand, Source={x:Reference MainGrid}}"
CommandParameter="{Binding ContactEmail}"/>
</TableSection>
</TableRoot>
</TableView>
Offensichtlich ist die IsVisible Eigenschaft hat nicht funktioniert und löst eine Ausnahme, weil es nicht existiert (es ist auf andere Elemente wie Labels). Ich habe auch versucht, VisualElement.IsVisible
zu verwenden, die eine ungültige Cast-Ausnahme auslöst. Gibt es eine Möglichkeit, diesen Abschnitt zu verbergen?
Wenn es nicht eine Möglichkeit, es zu tun ist, vielleicht brauche ich werde ein dreckiger Weg zu gehen und einen separaten Tableviews verwenden (Es kann ich VisualElement.IsVisible) :(
Ich fürchte, ich nicht mit Xamarin gearbeitet haben, so viel wie Ich mag würde, aber wenn es allgemeine XAML Standards trägt wäre es 'Visibility' Eigenschaft würden Sie Ihren Bool setzen durch einen Konverter, um entweder 'sichtbar' oder 'kollabiert' als der Parameter zu sein. dh; 'Visibility =" Collapsed "' –
Vielen Dank, aber Xamarin Forms verwendet eigene benutzerdefinierte Steuerelemente und die Visibility-Eigenschaft ist nicht verfügbar. Formulare werden zur Laufzeit in native Steuerelemente übersetzt. – Eric
Wirklich? Nun, das ist enttäuschend. Ich frage mich, ob MS, seit sie sie gekauft haben, versuchen könnte, einige der langen Standardkonventionen zu übernehmen. Muss mit Xamarin mehr basteln wenn ich Zeit habe. Prost –