Я хочу добавить кнопки в динамическом представлении, например, в некоторых случаях я добавлю 2 кнопки и в определенных возможностях добавлю 4 кнопки, но я хочу обобщить всю эту логику в представлении, в которое я только передаю параметрынапример, название заголовка, количество кнопок и т. д., чтобы пользователь был развернут следующим образом ...
, чтобы сделать это, откажитесь от некоторых реализаций:
1.- Используйте a, так как это создает мертвую область, если список состоит из нескольких элементов 2.- Используйте элемент управления, так как это несуществует для Android-iOS
При использовании MVVM в качестве архитектурного шаблона мне трудно передать параметры в CodeBehind, для предыдущего использования MessagingCenter, в котором я передаю список строк, через который я, наконец, перехожуЯ добавляю кнопки, но это не работает
у вас есть следующий вид с соответствующим x: Имя ...
View.xaml:
<Label
Text="{Binding Titulo}"
HorizontalOptions="CenterAndExpand">
</Label>
<StackLayout
x:Name="EntriesStackLayout">
</StackLayout>
isв ViewModel Viгде я передаю список через MessagingCenter
ViewModel.cs:
#region Constructor
public OptionsPopUpViewModel(string title, List<string> opciones)
{
Titulo = title;
opcionesMensaje = opciones;
MessagingCenter.Send((App)Xamarin.Forms.Application.Current, "Opciones", opcionesMensaje);
}
#endregion
Затем в коде позади представления я получаю в методе OnAppearing () и создаю кнопку вВид
Вид.xaml.cs:
public OptionsPopUpView()
{
InitializeComponent();
}
protected override void OnAppearing()
{
base.OnAppearing();
MessagingCenter.Subscribe<App, List<string>>((App)Xamarin.Forms.Application.Current, "Opciones", (s, opcionesMensaje) =>
{
foreach (var item in opcionesMensaje)
{
Button boton = new Button();
EntriesStackLayout.Children.Add(boton);
}
});
}
protected override void OnDisappearing()
{
base.OnDisappearing();
MessagingCenter.Unsubscribe<App, List<string>>(this, "Opciones");
}
Ожидаемое поведение: Добавление кнопок в зависимости от количества элементов в списке
Полученное поведение: при отслеживании кода,первый не выполняет метод OnAppering (), когда я запускаю его во второй раз, он входит в метод и работает правильно, но не добавляет кнопки
Почему я получаю такое поведение?потому что мой код не может добавить кнопки, если я получаю список в MessagingCenter?
Что я делаю не так?любая помощь для меня?
Надеюсь, этот вопрос поможет тем, кто с той же проблемой
С уважением!