【发布时间】:2016-04-22 05:53:00
【问题描述】:
我试图将自定义事件添加到 Xamarin.Forms 中的自定义控件。请看下面的代码:
public delegate void ImageSelectedHandler(object sender, EventArgs e);
public static event ImageSelectedHandler OnImageSelected;
private void OnImageBtnTapped(object sender, EventArgs e)
{
if (OnImageSelected != null)
{
OnImageSelected(sender,e);
}
}
在使用控件的页面中:
SelectMultipleBasePage<ListItems>.OnImageSelected += ListPage_OnImageSelected;
void ListPage_OnImageSelected(object sender, EventArgs e)
{
//code here
}
我可以使用上面的代码访问该事件。但我想在不同的页面上使用控件。在不同的页面上,不同的OnImageSelected 甚至会表现不同。因此我想要这样的东西:
SelectMultipleBasePage<ListItems> multiPage = new SelectMultipleBasePage<ListItems>(items);
multiPage.OnImageSelected += ListPage_OnImageSelected;
但是当我这样做时,我得到了错误:
无法通过实例引用访问;改为使用类型名称来限定它
我在访问活动时做错了什么?
【问题讨论】:
-
通过使事件静态化!当你想在另一个类中访问它时,你只将它设置为这个类的本地。你必须以 Myclassname.OnImageSelected 的身份访问它
标签: c# xamarin event-handling custom-controls xamarin.forms