Я работал над многими ответами на вопрос о событиях и о том, как им требуется поле делегата поддержки, которое будет использоваться для хранения добавленных обратных вызовов.Тем не менее, я до сих пор крайне озадачен тем, как это относится к тому, как я его реализую.Ниже приведен точный ответ, который я пытался выполнить и реализовать на основе вопросов и ответов, но безрезультатно.
https://stackoverflow.com/a/41641881/8065149
В целом, я пытаюсь добавить пользовательские жесты в пользовательский рендер карты в Xamarin и Android.Я хочу иметь возможность, при нажатии и удержании, добавить булавку на мою карту.В настоящее время я выяснил, как добавить контакты через кран, но я хочу изменить его на длинный кран.Ниже приведено руководство, которое я использовал, чтобы попытаться добавить жесты в свой проект, поскольку он выглядел многообещающе (хотя его веб-сайт не защищен).А под веб-сайтом также находится проект github на случай, если за ним будет легче следить.
https://arteksoftware.com/gesture-recognizers-with-xamarin-forms/ https://github.com/RobGibbens/XamarinFormsGestureRecognizers
Ниже приведен код, о котором идет речь.В частности, две строки if (this.GenericMotion != null)
и if (this.Touch != null)
.Обе эти строки выдают ошибку: The event 'View.GenericMotion' can only appear on the left hand side of += or -=
.
protected override void OnElementChanged (ElementChangedEventArgs<Label> e)
{
base.OnElementChanged (e);
if (e.NewElement == null) {
if (this.GenericMotion != null) {
this.GenericMotion -= HandleGenericMotion;
}
if (this.Touch != null) {
this.Touch -= HandleTouch;
}
}
if (e.OldElement == null) {
this.GenericMotion += HandleGenericMotion;
this.Touch += HandleTouch;
}
}
void HandleTouch(object sender, TouchEventArgs e)
{
_detector.OnTouchEvent(e.Event);
}
void HandleGenericMotion(object sender, GenericMotionEventArgs e)
{
_detector.OnTouchEvent(e.Event);
}
Я попытался последовать ответу, который я отправил ранее, но я был смущен тем, как я должен был проверить, были ли они нулевыми или нет,и затем, если бы они были такими, какими я должен был называть обработчики, которые будут фактически работать с сенсорными событиями.
Если требуется больше кода, чтобы пролить свет на проблему, пожалуйста, оставьте комментарий.Спасибо.