我创建了一个自定义控件,由一堆文本框,一个按钮和单选按钮组成。
然后我有一个“父”控件,它只放置了这个1个自定义控件,在后面的代码中我引用了这个控件的Presenter。
演示者处理实际的搜索代码(按下一个按钮时)。如何在子控件上设置按钮单击事件以从演示者调用Search方法?
所以我有以下内容:
CtlSearchDetails
ViewSearchScreen
PresenterSearchScreen
按钮点击事件在CtlSearchDetails
上,需要在PresenterSearchScreen
上调用该方法。我无法弄清楚如何在ViewSearchScreen
的控件实现中揭示这种方法。
答案 0 :(得分:1)
在自定义子控件中,您希望公开按钮单击的事件:
public event Action OnButtonClicked;
然后挂钩设计师点击的按钮事件
private void btn_myButton_Clicked(object sender, EventArgs e)
{
if (OnButtonClicked != null)
OnButtonClicked();
}
然后在父容器中,您希望从子控件
处理此事件this.myChildControl.OnButtonClicked += new Action(onChildButtonClicked);
private void onChildButtonClicked()
{
// Do your search here
}