Ich möchte nur ein benutzerdefiniertes Steuerelement mit Xamarin.Forms erstellen. Dieses benutzerdefinierte Steuerelement sollte ein Array/eine Liste von Ansichten in der XAML (wie zum Beispiel Stacklayout
) nehmen.Benutzerdefiniertes Steuerelement wie StackLayout mit Xamarin.Forms
Meine XAML sieht wie folgt aus:
<controls:MyLayout>
<ContentView BackgroundColor="Green">
<Label Text="Test 1" />
</ContentView>
<ContentView BackgroundColor="Red">
<Label Text="Test 1" />
</ContentView>
</controls:MyLayout>
Und die Klasse für MyLayout
:
[ContentProperty("Children")]
public class MyLayout: ScrollView, IViewContainer<View>
{
public IList<View> Children { get; set; }
// And some more properties and methods ...
}
Aber wenn ich diese kompilieren und es auf meinem Android-Handy laufen, ich folgende Fehlermeldung erhalten:
Exception has been thrown by the target of an invocation. ---> Xamarin.Forms.Xaml.XamlParseException: Position 29:8. Cannot assign property "Children": type mismatch between "Xamarin.Forms.ContentView" and "System.Collections.Generic.IList`1[Xamarin.Forms.View]"
Wie kann ich das lösen? Was vermisse ich?
Keine Änderung Das ist nicht das Problem. Mit 'ContentView' habe ich den gleichen Fehler: Typ nicht übereinstimmen zwischen "Xamarin.Forms.ContentView" und "System.Collections.Generic.IList'1 [Xamarin.Forms.ContentView]" – Joehl
Sie können die 'Xamarin.Forms' Quelle beziehen Erstellen Sie Ihr Steuerelement, jetzt, wo es Open Source ist. Sie finden den Code unter https://github.com/xamarin/Xamarin.Forms –