使用xamarin.forms将数据传递回主页

时间:2018-07-31 14:45:45

标签: c# xamarin.forms visual-studio-2017

我有2页 product_page novo_pedido_page 。当我进入 novo_pedido_page 时,我有一个按钮可以调用 product_Page 从网格中选择一种产品。我想做的是,选择该产品并发送回 novo_pedido_page

到目前为止,我所做的是在 novo_pedido_page 上进行的操作:

private async void ToolbarItem_Clicked(object sender, EventArgs e)
        {
            await Navigation.PushModalAsync(new product_page());
        }

1 个答案:

答案 0 :(得分:1)

您需要使用事件处理程序和委托:

在product_page中,您应该发送事件:

public event EventHandler<Product> ProductSelected;

private void Product_Clicked(object sender, EventArgs e)
{
    var productId = ((Button) sender).CommandParameter;
    var product = GetProduct(productId);
    ProductSelected?.Invoke(this, product);
}

在novo_pedido_page中,您必须订阅并处理此事件:

private Product selectedProduct;

private async void ToolbarItem_Clicked(object sender, EventArgs e)
{
    var page = new product_page();
    page.ProductSelected += OnProductSelected;
    await Navigation.PushModalAsync(page);
}


private void OnProductSelected(object sender, Product product)
{
    this.selectedProduct = product;
}