Добавление дочернего элемента в родительский элемент на кнопке Нажмите Xamarin.forms

Я пытался добавить представление Label к Stacklayout на кнопке Click в Android. Но он выбрасывает исключение Null Pointer. Ниже я пытаюсь добиться успеха. Кто-нибудь может посоветовать, как это сделать в xamarin.forms

Код Xamarin.Forms в C #

StackLayout parent= new StackLayout (); Button add= new Button { HorizontalOptions=LayoutOptions.End, BackgroundColor=Xamarin.Forms.Color.White, Text="ADD", TextColor=Xamarin.Forms.Color.Maroon, }; add.Clicked += OnButtonClicked; Label firstLabel = new Label { Text = "Label 1", HorizontalOptions = LayoutOptions.StartAndExpand, TextColor=Xamarin.Forms.Color.FromHex("#000000") }; parent.Children.Add(add); parent.Children.Add(firstLabel ); 

Добавление ярлыка в ButtonClick

  void OnButtonClicked(object sender, EventArgs e) { Label secondLabel = new Label { Text = "Label 1", HorizontalOptions = LayoutOptions.StartAndExpand, TextColor=Xamarin.Forms.Color.FromHex("#000000") }; parent.Children.Add(secondLabel ); } 

Заранее спасибо

Ваш код работает так же, как … с одним крошечным изменением – сделайте parent полем класса, поэтому он ссылается из OnButtonClicked

Убедитесь, что вы обновили пакеты решений, чтобы у вас были последние версии Xamarin.Forms. Всегда обновляйте пакеты на уровне решения, чтобы не возникало конфликтов версий

Эта версия была протестирована и работает на iOS:

 public class LabelPage: ContentPage { StackLayout parent = null; public LabelPage () { parent = new StackLayout (); Button add = new Button { HorizontalOptions = LayoutOptions.End, BackgroundColor = Xamarin.Forms.Color.White, Text = "ADD", TextColor = Xamarin.Forms.Color.Maroon, }; add.Clicked += OnButtonClicked; Label firstLabel = new Label { Text = "Label 1", HorizontalOptions = LayoutOptions.StartAndExpand, TextColor = Xamarin.Forms.Color.FromHex ("#000000") }; parent.Children.Add (add); parent.Children.Add (firstLabel); Content = parent; } void OnButtonClicked (object sender, EventArgs e) { Label secondLabel = new Label { Text = "Label 1", HorizontalOptions = LayoutOptions.StartAndExpand, TextColor = Xamarin.Forms.Color.FromHex ("#000000") }; parent.Children.Add (secondLabel); //UpdateChildrenLayout (); } } 
Intereting Posts