繁体   English   中英

Xamarin.Forms 中的自定义事件

[英]Custom event in Xamarin.Forms

我试图在 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;

但是当我这样做时,我得到错误:

不能通过实例引用访问; 用类型名称来限定它

我在访问事件时做错了什么?

只需删除static

public event ImageSelectedHandler OnImageSelected;

然后你可以打电话

SelectMultipleBasePage<ListItems> multiPage = new SelectMultipleBasePage<ListItems>(items);
multiPage.OnImageSelected += ListPage_OnImageSelected;

当然,您也必须更改静态调用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM