Единый обработчик событий в коде C# для всех пользовательских кнопок/MAUI .NET8C#

Место общения программистов C#
Anonymous
Единый обработчик событий в коде C# для всех пользовательских кнопок/MAUI .NET8

Сообщение Anonymous »

Простая страница контента с множеством кнопок. Мне нужен один обработчик событий (OnButtonPress), чтобы расшифровать, какая кнопка была нажата, и выполнить различные действия. Вместо того, чтобы утомительно писать Clicked="OnButtonPress" сто раз в XAML, я решил (поскольку я все равно определил собственный класс Button2:Button по разным причинам) определить этот обработчик событий как стандартный для класса Button2. .
Есть ли способ сделать это? Я несколько дней искал и использовал искусственный интеллект, но, похоже, так и не смог разобраться, поэтому буду признателен за подсказку.
Я пробовал:
  • , но события не подлежат привязке.
  • добавление public EventHandler Clicked = "OnButtonPress" в класс Button2, но он не может неявно преобразовать тип String в System.EventHandler .
  • помещая this.Clicked += new EventHandler(MainPage.OnButtonPress); в класс Button2, но он жалуется на то, что OnButtonPress не существует в MainPage, когда это явно так.
  • перемещаем OnButtonPress в класс Button2, но затем жалуется, что «не удалось найти тип или пространство имен OnButtonPress» (это типа... . вот, чувак).
  • this.Clicked = OnButtonPress();
  • this.Clicked += OnButtonPress(object sender, EventArgs e);
Общая структура кода проста:
namespace Adam
{
public partial class MainPage : ContentPage
{
public void OnButtonPress(object sender, EventArgs e)
{
// decoding stuff goes here
}

public class Button2 : Button
{
// lotsa properties and stuff added here

public Button2()
{
// I didn't put any code in here
}
}
}
}

и XAML (все сетки и прочее я опустил):


>



Подробнее здесь: https://stackoverflow.com/questions/787 ... -maui-net8

Вернуться в «C#»