如何在ContentPage中获取ContentView页面按钮的单击事件xamarin.forms

时间:2016-09-20 12:44:47

标签: xaml user-controls xamarin.forms

我在ContentView页面中有一些UI(标签,按钮,编辑器,条目) 通过使用UserControl,我在ContentPage上获取该UI,但是如何在ContentPage中获取ContentView页面按钮的单击事件xamarin.forms

1 个答案:

答案 0 :(得分:4)

有多种方法可以执行此操作,您可以使用Messaging Center在按下按钮时触发消息,但这不是最优雅的解决方案。

从我从你的问题中收集到的信息,你已经建立了自己的用户控制权。在该控件中定义委托和事件,如下所示:

public delegate void OnSomeButtonClickedDelegate();

public OnSomeButtonClickedDelegate OnSomeButtonClicked { get; set; }

现在,当你的按钮点击时,我们必须触发此事件。首先结束活动:

myButton.Clicked += myButtonClickedEvent;

在事件处理程序中执行以下操作:

private void myButtonClickedEvent(object sender, EventArgs args)
{
    if (OnSomeButtonClicked != null)
       OnSomeButtonClicked();
}

您必须首先检查null,因为如果没有人订阅此事件,则不会触发它。如果有人,则调用它。

当然,您可以根据需要为他们提供参数等。

现在,在您使用用户控件的页面中,您现在可以实现:

myUserControl.OnSomeButtonClicked += onSomeButtonClickedEvent;