Как перейти от App.xaml.cs к другим страницам? - PullRequest
1 голос
/ 15 апреля 2019

Так что у меня есть разные страницы в моем приложении. Поскольку мне нужна строка меню на всех этих страницах, я сделал следующее в своем App.xaml.

Я бы обычно использовал NavigationService для навигации между разными страницами. Но как мне перейти на разные страницы из моего App.xaml.cs.

<Application.Resources>
        <Menu x:Key="Menu">
            <DockPanel  VerticalAlignment="Top">
                <Menu DockPanel.Dock="Top" FontSize="14">
                    <MenuItem Header="_File">
                        <Separator />
                        <MenuItem Header="_Exit" />
                    </MenuItem>
                    <MenuItem Header="_Statussen" Click="MenuItem_OnClick"/>
                    <MenuItem Header="_TipsTricks" />
                </Menu>
            </DockPanel>
        </Menu>
    </Application.Resources>

У меня есть страницы StatussenPage.xaml и т. Д. При нажатии на элемент меню должно отображаться эта страница и т. Д.

Добавлен следующий код в мой App.xaml.cs:

        Page testpage = new TipsTricksPage();

        private void MenuItem_OnClick(object sender, RoutedEventArgs e)
        {
            testpage.NavigationService.Navigate(new TipsTricksPage());
        }

И получаю следующую ошибку: System.NullReferenceException

1 Ответ

0 голосов
/ 15 апреля 2019

В лучшем случае, Вы должны запустить свое приложение с MainWindow .

In App.xaml

<Application x:Class="projectname.App"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:local="clr-namespace:Banc_Suspension_SAHD"
             StartupURI="MainWindow.xaml.cs" // Right here !
             Exit="App_Exit">

затем, в вашем главном окне (открывается сразу при запуске приложения) вы можете создать меню и в MainWindow.cs обработать событие click.

В MainWindow.Xaml.cs

<Window x:Class="projectname.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        mc:Ignorable="d">
    <Grid>
            <Menu>
                <MenuItem Header="Re-Impression PV">
                    <MenuItem Click = "MyActionClick"></MenuItem>
                    <MenuItem></MenuItem>
                </MenuItem>
            <Menu/>
      </Grid>
</Window>

В MainWindow.cs

        private void MyActionClick(object sender, RoutedEventArgs e)
        {
            //Your code
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...