Я пытался добавить пользовательское событие в свой пользовательский элемент управления в 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;
Но когда я делаю, что я получаю ошибку:
Cannot be accessed with an instance reference; qualify it with a type name instead
Что я делаю неправильно в доступе событие?
Сделайте статичным событие! u r делает его локальным только для этого класса, , когда вы хотите получить доступ к нему в другом классе. u будет иметь к нему доступ как Myclassname.OnImageSelected –