Передача параметра фона через Tapgesture из списка в новую страницу в формах xamarin - PullRequest
0 голосов
/ 04 января 2019

В течение некоторого времени я пытаюсь создать службу навигации в своем приложении, изучая Xamarin.Мой подход здесь не обманывает шаблон проектирования mvvm, но сначала я стараюсь, чтобы работала функциональность, над которой я буду работать дальше.Я выяснил, как перемещаться с помощью свойства ItemSelected в просмотре списка через событие, запущенное в файле с выделенным кодом, и передавать параметр из объекта, помещенного в представление списка, в виде строки.Я хочу изменить его на более нестандартный способ, добавив жест касания к изображению, а не (кнопка image даже не запускает событие для новой страницы, когда я добавил жест касания в файл xaml). Это сработало для выбранного элемента:

private async void SampleItem_Tapped(object sender, ItemTappedEventArgs e)
    {
        var details = e.Item as SampleModel;
        await Navigation.PushAsync(new Page1(details));
    }

код новой страницы:

    public Page1(SimpleModel sample)
    {
        InitializeComponent();

        var pageServices = new PageServices();
        BackgroundImage = sample.SampleMainBackgroundImage;

    }

Здесь мне нужна ваша помощь: (приложение выдает исключение, когда я задаю в качестве конструктора новой страницы строковое свойство и привязываю его к моей строке backgroundimagebinding (ссылка на объект не задана)экземпляру объекта новая страница))

private async void SampleIcon_Tapped(object sender, ItemTappedEventArgs e)
    {
        var details = e.Item as SampleModel;
        await Navigation.PushAsync(newPage1(details));

    }

1 Ответ

0 голосов
/ 04 января 2019

е. Элемент кода ниже будет визуальным элементом, который, я думаю, будет изображением.Следовательно, он не может быть приведен как SampleModel.

private async void SampleIcon_Tapped(object sender, ItemTappedEventArgs e)
{
    var details = e.Item as SampleModel;
    await Navigation.PushAsync(newPage1(details));

}

Он работал в ListView, возможно, потому что вы установили ItemsSource в список PageModels.Кстати, было бы очень полезно в следующий раз, если вы включите все связанные коды.Например, часть XAML.Кроме того, попробуйте инструменты отладчика, чтобы вы могли просмотреть подробную информацию об объектах, переданных в методе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...