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

Pra*_*nde 2 xaml user-controls xamarin.forms

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

Ger*_*uis 5

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

从我从您的问题中收集的信息来看,您已经实现了自己的用户控制。在该控件中,定义一个委托和一个事件,如下所示:

public delegate void OnSomeButtonClickedDelegate();

public OnSomeButtonClickedDelegate OnSomeButtonClicked { get; set; }
Run Code Online (Sandbox Code Playgroud)

现在你的按钮时点击我们要火了本次活动。首先连接事件:

myButton.Clicked += myButtonClickedEvent;
Run Code Online (Sandbox Code Playgroud)

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

private void myButtonClickedEvent(object sender, EventArgs args)
{
    if (OnSomeButtonClicked != null)
       OnSomeButtonClicked();
}
Run Code Online (Sandbox Code Playgroud)

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

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

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

myUserControl.OnSomeButtonClicked += onSomeButtonClickedEvent;
Run Code Online (Sandbox Code Playgroud)