Ejemplo n.º 1
0
        public void SetResult(Object result)
        {
            if (!IsCompleted)
            {
                IsCompleted = true;

                if (!CompletionSource.Task.IsCompleted)
                {
                    CompletionSource.SetResult(result);
                }
            }
        }
Ejemplo n.º 2
0
 public void SetCompleted()
 {
     CompletionSource.SetResult(Responses);
 }
 protected override void Success(IConsumeContext <TResponse> context)
 {
     CompletionSource.SetResult(context.Message);
 }
Ejemplo n.º 4
0
            public override void Execute()
            {
                _command();

                CompletionSource.SetResult(null);
            }
Ejemplo n.º 5
0
 public override void Execute()
 {
     CompletionSource.SetResult(_query()?.Copy());
 }
Ejemplo n.º 6
0
 /// <summary>
 /// Sets the <typeparamref name="TResult"/> result that invocations will receive.
 /// </summary>
 /// <param name="result"></param>
 public void SetResult(TResult result) => CompletionSource.SetResult(result);
Ejemplo n.º 7
0
        public ItemSelectorPage()
        {
            InitializeComponent();

            nav = DependencyService.Get <INavigation>(DependencyFetchTarget.GlobalInstance);


            this.BindingContext = this;

            selectButton.Clicked += async(s, e) => {
                if (valueSelected)
                {
                    return;
                }
                valueSelected = true;
                INavigation nav = DependencyService.Get <INavigation>(DependencyFetchTarget.GlobalInstance);
                await nav.PopModalAsync();

                CompletionSource.SetResult(SelectedItem);
            };

            cancelButton.Clicked += async(s, e) => {
                if (valueSelected)
                {
                    return;
                }
                valueSelected = true;
                await nav.PopModalAsync();

                CompletionSource.SetResult(previousSelection);
            };

            searchBar.TextChanged += (s, e) => {
                FilterItems();
            };

            Device.BeginInvokeOnMainThread(async() => {
                await Task.Delay(1);
                FilterItems();
                previousSelection = SelectedItem;
                if (ItemTemplate != null)
                {
                    listView.ItemTemplate = new DataTemplate(() =>
                    {
                        var c = ItemTemplate.CreateContent() as View;
                        return(new ViewCell {
                            View = c
                        });
                    });
                }


                /* we don't want to look for ItemSelected event immediately
                 * because SelectedItem is set by binding framework after initialization,
                 * there is no way to detect human selection over default selection*/
                await Task.Delay(100);



                listView.ItemSelected += async(s, e) => {
                    if (valueSelected)
                    {
                        return;
                    }
                    valueSelected = true;
                    // delay to display little animation...
                    await Task.Delay(500);
                    await nav.PopModalAsync(true);
                    CompletionSource.SetResult(e.SelectedItem);
                };
            });

            if (AddNew != null)
            {
                selectButton.IsVisible = true;
                Grid.SetColumnSpan(cancelButton, 1);
            }
            else
            {
                selectButton.IsVisible = false;
                Grid.SetColumnSpan(cancelButton, 2);
            }
        }