ContentPage中如何获取ContentView页面按钮的点击事件xamarin.forms
How to get click events of buttons of ContentView page in ContentPage xamarin.forms
我在 ContentView 页面(标签、按钮、编辑器、条目)中有一些 UI
通过使用 UserControl,我在我的 ContentPage 上得到 UI,但是如何在 xamarin.forms
中获取 ContentPage 中 ContentView 页面按钮的点击事件
有多种方法可以做到这一点,您可以使用 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;
我在 ContentView 页面(标签、按钮、编辑器、条目)中有一些 UI 通过使用 UserControl,我在我的 ContentPage 上得到 UI,但是如何在 xamarin.forms
中获取 ContentPage 中 ContentView 页面按钮的点击事件有多种方法可以做到这一点,您可以使用 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;