Средство выбора предустановок Отображение нуля как выбранного элемента - PullRequest
0 голосов
/ 01 августа 2020

У меня есть объект выбора, который получает предустановленные значения. Я пытаюсь поместить это в другие формы в приложении, а именно в список того же средства выбора, чтобы выбрать несколько объектов одного типа. Средство выбора заполняется правильно и выбирает, но затем, если я обновляю что-либо в коде, я вижу, что выбранный объект имеет значение null, тогда, когда форма обновляет выбранный параметр, исчезает.

Это xaml для предварительно заполненного средства выбора

    <ContentView.Content>
        <Picker x:Name="picker"
            Title="Select a Player"
            SelectedItem="{Binding SelectedPlayer}" >
        </Picker>
    </ContentView.Content> 

Вот его код

    public partial class PlayerDrop : ContentView
    {
        public PlayerDrop ()
        {
            InitializeComponent ();
            picker.ItemsSource = GlobalVariables.Players;
            picker.ItemDisplayBinding = new Binding("Name");
        }
    } 

Вот вызывающая его страница. В данном случае он находится в списке, в который можно добавить больше игроков.

   <ContentPage.Content>
        <StackLayout x:Name="OuterLayout" VerticalOptions="FillAndExpand">
            <ListView x:Name="PlayerDropList">
                <ListView.ItemTemplate>
                    <DataTemplate>
                        <ViewCell>
                            <StackLayout VerticalOptions="Center" Margin="30,0,0,0">
                                <StackLayout Orientation="Horizontal" VerticalOptions="Center" HorizontalOptions="FillAndExpand">
                                    <controls:PlayerDrop></controls:PlayerDrop>
                                </StackLayout>
                            </StackLayout>
                        </ViewCell>
                    </DataTemplate>
                </ListView.ItemTemplate>
            </ListView>
            <Button Text="Add Player" Clicked="AddPlayerDropEvent"/>
        </StackLayout>
    </ContentPage.Content>

И код

        List<PlayerDrop> PlayersInGame = new List<PlayerDrop>();
        public PreviousGame ()
        {
            InitializeComponent ();
            AddPlayerDrop();
        }
        public void AddPlayerDropEvent(object sender, ClickedEventArgs args)
        {
            AddPlayerDrop();
        }
        public void AddPlayerDrop()
        {
            if (PlayersInGame.Count > 0)
            {
                PlayersInGame = this.PlayerDropList.ItemsSource.Cast<PlayerDrop>().ToList();
            }
            PlayerDrop tempDrop = new PlayerDrop();
            PlayersInGame.Add(tempDrop);
            this.PlayerDropList.ItemsSource = PlayersInGame;
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...