Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Xamarin.Forms中的自定义事件_C#_Xamarin_Event Handling_Custom Controls_Xamarin.forms - Fatal编程技术网

C# Xamarin.Forms中的自定义事件

C# Xamarin.Forms中的自定义事件,c#,xamarin,event-handling,custom-controls,xamarin.forms,C#,Xamarin,Event Handling,Custom Controls,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 (OnImageSel

我试图将自定义事件添加到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
}
但当我这样做时,我会出错:

无法使用实例引用访问;改为使用类型名称限定它


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

只需删除
静态文件即可

public event ImageSelectedHandler OnImageSelected;
然后你可以打电话

SelectMultipleBasePage<ListItems> multiPage = new SelectMultipleBasePage<ListItems>(items);
multiPage.OnImageSelected += ListPage_OnImageSelected;
SelectMultipleBasePage multiPage=新建SelectMultipleBasePage(项目);
multiPage.OnImageSelected+=列表页面_OnImageSelected;

当然,您也必须更改静态呼叫。

这对我不起作用。它给了我一个错误:`错误14无法通过嵌套类型'AppName.SelectMultipleBasePage.WrappedItemSelectTemplate'访问外部类型'AppName.SelectMultipleBasePage'的非静态成员。请看一下我前面的问题:如果您想使用此控件的多个实例,您不能使用静态事件。添加了其他问题的答案问题。通过使事件保持静态!当您想在另一个类中访问它时,将其设置为仅此类的本地。您必须以Myclassname.OnImageSelected的身份访问它
SelectMultipleBasePage<ListItems> multiPage = new SelectMultipleBasePage<ListItems>(items);
multiPage.OnImageSelected += ListPage_OnImageSelected;