none
Передача данных со страницы на страницу RRS feed

  • Вопрос

  • Добрый день! Помогите, пожалуйста, решить следующую проблему. Пишу все в Uwp на С# с использование редактора XAML. У меня две страницы MainPage 2 и Rabotniki. На странице MainPage2 у меня есть следующий метод dengi: 

    После нажатия на определенную кнопку(выполнения события нажатия) на странице MainPage2 программа осуществляет переход на страницу Rabotniki. При событии нажатия выполняется следующее:

    На странице Rabotniki у меня также есть следующие методы:

    И я для получения значения dengi в методе OnNavigatedTo пишу следующее:

    Вопрос: где ошибка в передаче значения dengi? Значение не передается, есть textblock на странице Rabotniki, который должен показать это значение, переведенное в String( Заранее благодарю за ответ!

    14 июня 2017 г. 11:27

Ответы

Все ответы

  • Добрый день.

    В следующем примере при нажатии кнопки на одной странице, на другую страницу передаётся значение points .

    using Windows.UI.Xaml.Data;
    using Windows.UI.Xaml.Input;
    using Windows.UI.Xaml.Media;
    using Windows.UI.Xaml.Navigation;

    namespace App16

    { public sealed partial class MainPage : Page { int points= 12; public MainPage() { this.InitializeComponent(); } protected override void OnNavigatedTo(NavigationEventArgs e) { } private void Button_Click(object sender, RoutedEventArgs e) { Frame.Navigate(typeof(BlankPage1), points);// go to BlankPage1 } } }


    using Windows.UI.Xaml.Data;
    using Windows.UI.Xaml.Input;
    using Windows.UI.Xaml.Media;
    using Windows.UI.Xaml.Navigation;
    
    namespace App16
    {
        public sealed partial class BlankPage1 : Page
        {
            public BlankPage1()
            {
                this.InitializeComponent();
            }
            protected override void OnNavigatedTo(NavigationEventArgs e)
            {
                base.OnNavigatedTo(e);
                var n = e.Parameter;
                int points = (int)n;
                TextBlock1.Text ="points="+ String.Format("{0}", points);
            }
        }
    }


    Фоновое изображение


    14 июня 2017 г. 13:26
  • Вы, наверное, меня чуть-чуть не допоняли. Мне требуется передать множество переменных и строк. Поэтому я передаю, как бы класс на другую страницу. И у меня, к сожалению, информация не передается( Вы знаете как это сделать?
    14 июня 2017 г. 13:32
  • Возможно что бы передать множество переменных и строк нужно создать массив?

    Фоновое изображение

    14 июня 2017 г. 13:36
  • Ну насколько я знаю, что можно и объекты класса передавать. Вот здесь об этом внизу говорится: https://metanit.com/sharp/uwp/9.1.php
    14 июня 2017 г. 13:42
  • Вы передаете во фрейм новый объект класс MainPage2, значения полей которого заполнены нулями, а не текущую страницу. Вероятно вместо peredacha должно быть this, чтобы получить нужный результат.
    14 июня 2017 г. 14:24
  • Читаю и понимаю, что бесят эти русские слова, написанные не на русском.

    И бесят языки программирования с русскими символами

    Сори!


    14 июня 2017 г. 14:38
  • Можете поконкретнее пояснить, предложенный метод переноса значений не работает, как по ссылке внизу страницы? https://metanit.com/sharp/uwp/9.1.php . Все делал оттуда. И поконкретнее можете сказать, где заменить на this? Я неправильно понимаю, что в моем случай "peredacha" это название да и только?
    14 июня 2017 г. 15:41
  • Вы *не* применяете метод по ссылке, потому что вы не устанавливаете значения свойств передаваемого объекта (часть  Id = 1, Name = "MainPage" там не просто так)

    Заменить нужно так:

    Frame.Navigate(typeof(Rabotniki), this);


    14 июня 2017 г. 16:25
  • Вадим, спасибо Вам огромное!!! Все заработало и передалось!!! Знали бы вы, сколько времени ушло на поиск ответа. Знаете, у меня образование, далеко не программиста, но буду очень благодарен Вам, если объясните по простому, что делает этот this в данном случае? Т.е. его значение для программы именно, при передаче параметров со страница на страницу. Еще раз благодарю за помощь!!! 
    16 июня 2017 г. 18:17
  • В каждый не-статический метод неявным аргументом передается this - ссылка на экземпляр класса. Т.е. в данном случае, на текущую страницу. Когда вы в MainPage2 пишете dengi=... это эквивалентно this.dengi=... Поэтому и передавать в другую страницу нужно this.


    16 июня 2017 г. 18:45