Но как бы это помогло мне в добавлении поля ввода динамически, т.е. в зависимости от количества игроков, введенных пользователем?
Прежде всего, вы можете создать их динамически с помощью C# или добавить их и скрыть их в Xaml. В случае Xaml-способа, что вы можете сделать, это добавить записи и установить их видимость на false, вам не нужно создавать x номеров записей, вы просто хотите собирать данные в зависимости от количества игроков.
Итак, прежде всего, просто добавьте одну записи для каждого поля вы хотите:
<Entry x:Name="NameEntry" IsVisible="false" />
<Entry x:Name="AgeEntry" IsVisible="false" />
Теперь, после того, как пользователь вводит его количество игроков, в первую очередь вы поворачиваете записи, чтобы быть видимыми в вашем xaml.cs :
NameEntry.IsVisible = true;
AgeEntry.IsVisible = true;
Вы можете сохранить ваше количество игроков в переменной, и я думаю, у вас будет кнопка для сохранения данных прямо? После каждого щелчка на этой кнопке, вы проверяете, если количество сохраненных данных достигло числа игроков и очистить записи, и когда достигли вы превратить их обратно, чтобы быть невидимым:
NameEntry.Text = string.Empty;
AgeEntry.Text = string.Empty;
numberOfSavedData++;
//your saving logic in your button click
if (numberOfSavedData == numberOfPlayers)
{
NameEntry.IsVisible = false;
AgeEntry.IsVisible = false;
//etc...
}
Это не очень динамично создавать их , это просто, чтобы скрыть/показать записи. Теперь, если вы хотите их создать, а затем удалить позже, вы можете сделать это и в своем xaml.cs. Предложение будет создавать макет стека в вашем xaml, чтобы добавить записи к нему.
<StackLayout x:Name="EntriesStackLayout">
</StackLayout>
В ваших xaml.cs, после того, как количество игроков было предусмотрено, добавить только 1 запись о том, какие данные вам нужно, например:
Entry nameEntry = new Entry();
Entry ageEntry = new Entry();
EntriesStackLayout.Children.Add(nameEntry);
EntriesStackLayout.Children.Add(ageEntry);
И, как было сказано выше, вы бы из Конечно, есть кнопка, чтобы сохранить данные, и вы можете сделать то же самое внутри обработчика, как:
nameEntry.Text = string.Empty;
ageEntry.Text = string.Empty;
numberOfSavedData++;
//click handler
if (numberOfSavedData == numberOfPlayers)
{
EntriesStackLayout.Children.Remove(nameEntry);
EntriesStackLayout.Children.Remove(ageEntry);
//etc...
}
хорошее решение question..quick: вы можете поместить все записи на просмотр и сделать этот вид видимым = ложь, когда пользователь может выбрать номер вы сделаете visible = true , и запись появится для цикла. –