Dynami c Добавить запись игрока в формах Xamarin - PullRequest
0 голосов
/ 10 февраля 2020

У меня есть целое число игроков и из этого числа мне нужно сгенерировать номера записей для имени игрока. Я создал 24 записи и сделал их видимыми и невидимыми, но я думаю, что это не "умно".

Я немного протестировал примерно так:

var layout = new Stacklayout();
var playerentry = new Entry {Text = "Test"};
layout.children.Add(playerentry);

, комбинируя это с a для l oop при i = количестве игроков это не работает.

Может быть, кто-то может помочь в этом простом вопросе. ОБНОВЛЕНИЕ:

Это полный код:

1 Ответ

0 голосов
/ 10 февраля 2020

Используйте ListView или BindableLayouts, где число элементов или просмотров или неизвестно.

Xaml :

    <ListView x:Name="playerList">
        <ListView.ItemTemplate>
            <DataTemplate>
                <ViewCell>
                    <StackLayout Orientation="Horizontal">
                        <Label Text="Enter player name"/>
                        <Entry Text="{Binding Name}"/>
                    </StackLayout>
                </ViewCell>
            </DataTemplate>
        </ListView.ItemTemplate>
    </ListView>

Код позади

var playerCollection = new ObservableCollection<Player>();
for(int i=0;i<8;i++)
{
    playerCollection.Add(new Player());
}
playerList.ItemsSource=playerCollection;

Класс игрока

public class Player : INotifyPropertyChanged
{
    private string name = "Unknown";

    public string Name
    {
        get
        {
            return name;
        }
        set
        {
            name = value;
            OnPropertyChanged();
        }
    }

    protected void OnPropertyChanged([CallerMemberName] string propertyName = null)
    {
        PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
    }

    public event PropertyChangedEventHandler PropertyChanged;
}

Надеюсь, это поможет !! Комментарий к любым запросам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...