Измените VisualState элемента VisualElement с помощью Prism в Xamarin.Forms

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

Это полезно в контексте входов, но должно быть определено на наблюдаемом, которое вызывает событие не на том, что создано для HTTP-запроса.

Ниже приведен пример управления, связанного с входом, который использует оператор debounceTime:

@Component({
  (...)
  template: `
    
  `
})
export class MyComponent {
  constructor() {
    this.ctrl = new Control();
    this.ctrl.valueChanges
               .debounceTime(500)
               .distinctUntilChanged()
               .switchMap((value: string) => {
                 // Get data according to the filled value
                 return this.service.getData(entry);
               })
               .subscribe(data => {
                 // Update the linked list
                 this.list = data;
               });
  }
}

Эта статья также может заинтересовать вы:

Следуя комментарию микроникса, вот дополнительная ссылка:

0
задан Mattia Durli 15 January 2019 в 16:07
поделиться

1 ответ

Чтобы изменить визуальное состояние элемента, вы можете сделать это из кода на странице, например:

VisualStateManager.GoToState(yourViewElement, yourViewElementState);

Однако, не самый лучший совет, но вы можете подписаться изменения в вашей модели представления, из вашего code.behind, а затем вызовите VisualStateManager.

Пример

YourPage()
{
    viewModel.PropertyChanged += FooChanged;
}

public void FooChanged()
{
     if (!args.PropertyName.Equals("YourProperty"))
     {
          VisualStateManager.GoToState(yourViewElement, yourViewElementState);
     }
        return;
}
0
ответ дан Bruno Caceiro 15 January 2019 в 16:07
поделиться
Другие вопросы по тегам:

Похожие вопросы: