繁体   English   中英

Xamarin IMobileServiceTable同步运行

[英]Xamarin IMobileServiceTable Run Synchronously

使用IMobileServiceTable接口,如何同步调用方法的结果。 例如下面的GetTask方法:

public class ItemsManager {

    IMobileServiceTable<Item> itemTable;
    private ItemViewModel _itemViewModel = new ItemViewModel ();


    public ItemsManager()
    {
        this.itemTable = App.client.GetTable<Item>();
        App.SetItemsManager(this);
    }


    //This seems to just hang
    public Item GetTask(string id, string barcode)
    {

            var qry =  itemTable.Where(a => a.ItemID == id || a.BarCodeID == id);
            return qry.Query.FirstOrDefault();

    }
}

我试图通过扫描方法获得结果,并将项目记录提取到另一种形式:

async void OnProductScanClicked (object sender, EventArgs e)
    {
        var result = await BarCodes.Instance.Read ();
        if (!result.Success) {
            await this.DisplayAlert ("Scan Failed", "Failed to get barcode", "OK");
        } else {
            var msg = String.Format ("Barcode : {0} - {1}", result.Format, result.Code);
            App.SetItemsManager(new ItemsManager());
            var item = App.ItemManager.GetTask(result.Code, result.Format.ToString());

            if (item == null) {
                await this.DisplayAlert ("Item Not Found!", msg, "OK");
            }
            else {
                var myPage = new ItemsXaml();
                myPage.BindingContext = item;
                await Navigation.PushModalAsync (myPage);
            }

        }

    }

我对这些东西还很陌生,现在已经想办法了。 调用任何异步函数时,我们只需要添加await方法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM