У меня есть объект выбора, который получает предустановленные значения. Я пытаюсь поместить это в другие формы в приложении, а именно в список того же средства выбора, чтобы выбрать несколько объектов одного типа. Средство выбора заполняется правильно и выбирает, но затем, если я обновляю что-либо в коде, я вижу, что выбранный объект имеет значение 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;
}