потяните вниз, чтобы обновить таблицу - PullRequest
0 голосов
/ 30 апреля 2018

Я создал табличное представление со значениями, которые приходят из API. Теперь я хочу обновить значения, потянув вниз таблицу.

проблема в том, что он не выполняется, я пробовал с расстановкой точек останова на используемом коде.

вот код, который я вставил в свою viewdidload из таблицы:

        refreshControl = new MvxUIRefreshControl();
        refreshControl.ValueChanged += refreshTable;
        TableView.AddSubview(refreshControl);

обновляемая пустота:

   private void refreshTable(object sender, EventArgs e)
        {
            refreshControl.EndRefreshing();
            TableView.ReloadData();
         }

1 Ответ

0 голосов
/ 01 мая 2018

Поскольку вы используете MvxUIRefreshControl, вы должны создать команду для обработки этого события.

В вашей ViewModel команда может быть такой:

private MvxCommand refreshCommand;
public ICommand RefreshCommand
{
    get
    {
        return refreshCommand ?? (refreshCommand = new MvxCommand(ExecuteRefreshCommand));
    }
}

// Define this property to let the refresh control stop
private bool isBusy;
public bool IsBusy
{
    get { return isBusy; }
    set
    {
        isBusy = value; RaisePropertyChanged(() => IsBusy);
    }
}

async private void ExecuteRefreshCommand()
{
    IsBusy = true;
    // Do your task
    // await Task.Delay(2000);
    IsBusy = false;
}

Тогда в вашем View привязка должна быть такой:

var control = new MvxUIRefreshControl();
TableView.AddSubview(control);

var set = this.CreateBindingSet<YourView, YourViewModel>();

set.Bind(control).For(s => s.IsRefreshing).To(vm => vm.IsBusy);
set.Bind(control).For(s => s.RefreshCommand).To(vm => vm.RefreshCommand);

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