2016-11-13 4 views
0

Первого я прохожу содержание кнопки от MainPage к menu2:Попутных элементы между страницами в C# Xaml

private void Button2Click(object sender, RoutedEventArgs args) 
    { 
     // Create PassData object 
     PassData passData = new PassData(); 

     // Set the InitializeData property from the button's content 
     passData.Data = firstElement.Content; 

     // Pass that object to Navigate 
     this.Frame.Navigate(typeof(Menu2), passData); 

    } 

Затем я получить данные в пределах menu2 страницы:

// pulling data from first page selection 
    protected override void OnNavigatedTo(NavigationEventArgs args) 
    { 
     // Get the object passed as the second argument to Navigate 
     PassData passData = args.Parameter as PassData; 

     // Use that to initilize the button 
     firstElement.Content = passData.Data; 

     base.OnNavigatedTo(args); 
    } 

На содержании этой кнопки точки является прошел без проблем.

Затем я хочу передать эти данные обратно в MainPage снова:

menu2 код:

private void Button1Click(object sender, RoutedEventArgs args) 
    { 
     // Create PassData object 
     PassData passData = new PassData(); 

     // Set the InitializeData property from the button's content 
     passData.Data = firstElement.Content; 

     // Pass that object to Navigate 
     this.Frame.Navigate(typeof(MainPage), passData); 

    } 

, и я пытаюсь получить данные в MainPage:

// pulling data from Menu2's button 
    protected override void OnNavigatedTo(NavigationEventArgs args) 
    { 
     // Get the object passed as the second argument to Navigate 
     PassData passData = args.Parameter as PassData; 

     // Use that to initilize the button 
     firstElement.Content = passData.Data; 

     base.OnNavigatedTo(args); 
    } 

В этой точке I получить сообщение об ошибке по строке MainPage:

firstElement.Content = passData.Data; 

Ошибка говорит:

Null Reference Exception, Object reference not set to an instance of an object 

Что я делаю неправильно?

+1

либо ваш первый элемент, либо объект passData имеет значение NULL. – lukai

+0

Но почему? Должны ли они иметь данные, поскольку они уже переданы по главной странице? – paddy

+0

Он говорит, что passData имеет значение null. Но он должен иметь все, что было в firstElement.Content право? – paddy

ответ

0

Итак, на какой странице вы загружаете первую страницу?

При первой загрузке passData будет иметь значение null.

Я думаю, вы работаете над UWP, вы должны создать и передать PassData() в качестве аргумента в файле App.cs при переходе на MainPage.

+0

Я передаю PassData, используя класс в отдельный файл cs. Сначала я загружаю MainPage, где passData имеет значение NULL. Затем я перехожу к Menu2 и firstElement.Content MainPage назначается PassData. Затем он извлекается в Menu2. Поскольку в Menu2 первый элемент Element.Content на этой странице получает назначенный контент PassData, я хотел передать те же данные обратно в MainPage. На данный момент кажется, что PassData теряет значение firstElement.Content. – paddy

+0

Нужен ли мне отдельный PassData() для отправки данных на MainPage? – paddy

+0

@paddy вы можете вставить свой App.cs? – Cologler