2016-07-27 5 views
0

Я тестирую что-то, но .. im застрял в начале. Я проверил многие вещи, глядя в Интернете, но ничего. В MainPage.xaml:UWP Frame null reference

<SplitView.Content> 
     <Frame Name="MainPageMyFrame"></Frame> 
    </SplitView.Content> 

В .cs из MainPage:

private void ListView_ItemClick(object sender, ItemClickEventArgs e) 
    { 
     if (MainPageListView.SelectedIndex == 0) 
     { 
      MainPageMyFrame.Navigate(typeof(Pages.MainWindow)); 
     } 
    } 

и каждый раз, когда я буду нажав на пункт ид 0; им получать, и когда он хочет, чтобы перейти затем:

Exception thrown: 'System.NullReferenceException'

MainWindow является UserControl. У кого-нибудь есть идея, как исправить эту ошибку?

@update MainPage.xaml

<SplitView Grid.Row="1" Name="MainPageSplitView" OpenPaneLength="200" CompactPaneLength="50" DisplayMode="CompactOverlay"> 
     <SplitView.Pane> 
      <ListView Name="MainPageListView" Background="LightGray" ItemClick="ListView_ItemClick" IsItemClickEnabled="True"> 
       <ListView.Items> 

        <ListViewItem BorderThickness="0,1,0,1" BorderBrush="DarkGray"> 
         <StackPanel Orientation="Horizontal"> 
          <TextBlock Foreground="Black" FontFamily="Segoe MDL2 Assets" Text="&#xE806;" FontSize="25" /> 
          <TextBlock Margin="15, 0" Foreground="Black" FontSize="20" VerticalAlignment="Center" Text="Rozkład jazdy" /> 
         </StackPanel> 
        </ListViewItem> 

        <ListViewItem BorderThickness="0,0,0,1" BorderBrush="DarkGray"> 
         <StackPanel Orientation="Horizontal"> 
          <TextBlock Foreground="Black" FontFamily="Segoe MDL2 Assets" Text="&#xEC15;" FontSize="25" /> 
          <TextBlock Margin="15, 0" Foreground="Black" FontSize="20" VerticalAlignment="Center" Text="Komunikaty" /> 
         </StackPanel> 
        </ListViewItem> 

       </ListView.Items> 
      </ListView> 
     </SplitView.Pane> 
     <SplitView.Content> 
      <Frame Name="MainPageMyFrame" /> 
     </SplitView.Content> 
    </SplitView> 

и здесь мы идем, .cs из него:

public sealed partial class MainPage : Page 
{ 
    public MainPage() 
    { 
     this.InitializeComponent(); 

     MainPageListView.SelectedIndex = 0; 
    } 

    private void MainPageRelativePanelButton_Click(object sender, RoutedEventArgs e) 
    { 
     MainPageSplitView.IsPaneOpen = !MainPageSplitView.IsPaneOpen; 
    } 

    private void ListView_ItemClick(object sender, ItemClickEventArgs e) 
    { 
     if((sender as ListView).SelectedIndex == 0) // rozklad jazdy 
     { 
      MainPageMyFrame.Navigate(typeof(Pages.MainWindow)); // from here i want to navigate 
     } 
    } 
} 

MainWindow.xaml (страница, где я хочу, чтобы перейти)

<UserControl 
    x:Class="RozkladJazdy.Pages.MainWindow" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    xmlns:local="using:RozkladJazdy.Pages" 
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
    mc:Ignorable="d" 
    d:DesignHeight="300" 
    d:DesignWidth="400"> 

    <Grid> 
     <StackPanel Name="MainPageStackPanel" VerticalAlignment="Center" HorizontalAlignment="Center"> 

      <TextBlock VerticalAlignment="Center" Name="MainPageTextBlock"/> 
      <ProgressRing Name="MainPageProgressRing" IsActive="True" Width="50" Height="50"/> 

     </StackPanel> 
    </Grid> 
</UserControl> 

.cs:

using RozkladJazdy.Model; 
using Windows.UI; 
using Windows.UI.Xaml; 
using Windows.UI.Xaml.Controls; 
using Windows.UI.Xaml.Media; 

// The User Control item template is documented at http://go.microsoft.com/fwlink/?LinkId=234236 

namespace RozkladJazdy.Pages 
{ 
    public sealed partial class MainWindow : UserControl 
    { 
     public static string[,] Lines; 

     public MainWindow() 
     { 
      this.InitializeComponent(); // here the error is thrown 
     } 
    } 
} 

Вот и все, что-то не так?

+0

Это действительно непонятно, что вы спрашиваете –

+0

К сожалению :( Я хочу, чтобы исправить эту ошибку. И .. несчастен я не знаю, как сделать это – Niewidzialny

+0

я только что проверил что-то, и что ошибка в ' Pages.MainWindow' особенно в 'this.InitalizeComponent()' then crash .. – Niewidzialny

ответ

1

Как @Anthony Russell и @SWilko сказал: Проблема была в том, что я хотел перейти в UserControl, где я должен перейти к странице.

Прежде чем я создал приложение WPF, поэтому я забыл, что в UWP это должна быть страница.

+0

Вы не можете перейти к userControl, и он может перемещаться по странице и так далее. Вы можете сделать userControl как страницу. – lindexi