Как добавить и получить списки из представления в формах Xamarin? - PullRequest
0 голосов
/ 03 февраля 2019

Я делаю приложение Xamarin для Android, используя стандарт .net 2.0, и у меня достаточно большие объекты для обработки.Я хочу сделать для них несколько представлений, где они будут добавлены в список, а затем пользователь сможет выбрать из них, затем я извлеку выбранный объект и открою более подробный вид.

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

Я хотел бы добавить их в сетку, так как это кажется наилучшим для настройки макета, возможно ли добавить эти значения в сетку и прикрепить TapGestureRecognizer к строке, и каким-то образомсохранить и получить выбранный объект из этой строки?

1 Ответ

0 голосов
/ 03 февраля 2019

Если вы используете ICommand, вы можете просто реализовать TapGestureRecognizer.Сначала создайте GridView в XAML-файле следующим образом:

<Grid>
  <Grid.ColumnDefinitions>
      <ColumnDefinition Width="*"/>
      <ColumnDefinition Width="*"/>
  </Grid.ColumnDefinitions>
  <Label Text = "{Binding @something}" GridRow = 0 GridColumn = 0/>
  <Grid.GestureRecognizers>
      <TapGestureRecognizer Command="{Binding TapCommand}"/>
  </Grid.GestureRecognizers>
</Grid>

, после чего в коде c # установите привязку следующим образом:

var tapGestureRecognizer = new TapGestureRecognizer();
tapGestureRecognizer.SetBinding (TapGestureRecognizer.CommandProperty, "TapCommand");
grid.GestureRecognizers.Add(tapGestureRecognizer);

Затем вы должны реализовать команду:

public class TapViewModel : INotifyPropertyChanged
{
  ICommand tapCommand;

  public TapViewModel () 
  {
    tapCommand = new Command (OnTapped);
  }

  public ICommand TapCommand 
  {
    get { return tapCommand; }
  }

  void OnTapped (object s)
  {
    //DO whatever you want
  }

}

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