Ich weiß, dass es eine Möglichkeit gibt, Daten von Seite StackLayout
Variablen an Klasseneigenschaften zu binden, aber leider finde ich keine Ressourcen darüber. Ich weiß, wie man einfaches Binden implementiert. Zum Beispiel: zwischen Editor
und Label
. Aber wie kann ich Editor
Eingabetext an Klasseneigenschaft ex .: string Number {get; set;}
binden. Hier ist meine Klasse:Xamarin.Forms Data Bindung an Klasseneigenschaften
public class ThingsObject
{
public int Id { get; set; }
public bool IsStarted { get; set; }
public string Number {get; set; }
public string City { get; set; }
public Zones Zone { get; set; }
public ContentPage Page;
public DateTime StartDate { get; set; }
}
Und hier ist meine Klasse Pagelayout mit StackLayout Implementierung, Variablen und die Bindung zwischen ihnen.
public partial class ThingPageLayout : CarouselPage
{
List<ThingsObject> things= new List<ThingsObject>();
public ThingPageLayout()
{
things.Add(new ThingsObject() { Id = 1, Number = null, City = null, Zone = null });
foreach (ThingsObject p in things)
{
Children.Add(CreatePage(p));
}
}
public ContentPage CreatePage(ThingsObject thing)
{
int uniqueId = this.IdPark;
var page = new ContentPage()
{
Content = new StackLayout { }
};
var label1 = new Label
{
Text = "Text",
TextColor = Color.Black,
FontSize = Device.GetNamedSize(NamedSize.Medium, typeof(Label)),
HorizontalOptions = LayoutOptions.Center
};
((StackLayout)page.Content).Children.Add(label1);
var inputText = new Editor
{
TextColor = Color.Blue,
HorizontalOptions = LayoutOptions.Fill,
VerticalOptions = LayoutOptions.Fill
};
((StackLayout)page.Content).Children.Add(inputText);
// Binding here //
label1.BindingContext = inputText;
label1.SetBinding(Label.TextProperty, "Text");
// End of binding //
var activeButton = new Button
{
ClassId = uniqueId.ToString(),
Text = "Button",
HorizontalOptions = LayoutOptions.Fill,
VerticalOptions = LayoutOptions.Fill
};
((StackLayout)page.Content).Children.Add(activeButton);
thing.Page = page;
return page;
}
}
Und hier sind things
Number
-Editor
eingefügter Wert auf mein bestehendes Objekt binden möchte. Denn wenn Projekte gestartet werden, ist Number
Wert null
, aber nach Editor
Eingang möchte ich eingefügten Text an meine Klasseneigenschaft Number
binden.