Я не понимаю, чего вы пытаетесь достичь с помощью getter, который возвращает новый экземпляр. Я думаю, что вы хотели инициализировать ваш геттер:
private TapGestureRecognizer OneTapRecognizer { get;} = new TapGestureRecognizer()
{
NumberOfTapsRequired = 1,
Command = new Command<object>(o => OnImageClicked?.Invoke(o))
};
Кроме того, почему геттер, если переменная является частной?
Я думаю, что вы на самом деле хотите:
public class PhotoViewer: ContentView, IDisposable
{
private readonly TapGestureRecognizer _oneTapRecognizer;
public event Action<object> OnImageClicked;
public PhotoViewer()
{
_oneTapRecognizer = new TapGestureRecognizer()
{
NumberOfTapsRequired = 1,
Command = new Command<object>(o => OnImageClicked?.Invoke(o))
}
photoHolder.GestureRecognizers.Add(_oneTapRecognizer);
}
public void Didpose()
{
photoHolder.GestureRecognizers.Remove(_oneTapRecognizer);
}
}