Метод NavigationView.Loaded не вызывается - PullRequest
0 голосов
/ 23 мая 2019

Я пытаюсь использовать представление навигации в своем приложении UWP.Я написал события для Loaded, SelectionChanged и ItemInvoked.Но, похоже, никого из них не называют так, как я.

Это мое навигационное представление в XAML

        <NavigationView x:Name="nvSample" 
                        Background="{ThemeResource NavigationViewDefaultPaneBackground}"
                        IsBackButtonVisible="Collapsed"
                        Loaded="nvTopLevelNav_Loaded"
                        SelectionChanged="nvTopLevelNav_SelectionChanged"
                        ItemInvoked="nvTopLevelNav_ItemInvoked">
            <NavigationView.MenuItems>
                <NavigationViewItem Icon="Home" Content="Home" Tag="Home" />
                <NavigationViewItem Icon="Flag" Content="Memory Palace" Tag="SamplePage2" FontFamily="Segoe UI" />
                <NavigationViewItem Icon="Accept" Content="Test Arena" Tag="SamplePage3" />
                <NavigationViewItem Icon="OtherUser" Content="Sophie" Tag="SamplePage4" />
            </NavigationView.MenuItems>
            <Frame x:Name="contentFrame" >  
            </Frame>
</NavigationView>

Я написал предоставленные методы в MainPage.xaml.cs, как это

        private void nvTopLevelNav_Loaded(object sender, RoutedEventArgs e)
        {
            Console.WriteLine("in method");
            // set the initial SelectedItem
            foreach (NavigationViewItemBase item in nvSample.MenuItems)
            {
                if (item is NavigationViewItem && item.Tag.ToString() == "home")
                {
                    nvSample.SelectedItem = item;
                    break;
                }
            }
            contentFrame.Navigate(typeof(nvTop.home));
            Console.WriteLine("loaded bruh");
        }

        private void nvTopLevelNav_SelectionChanged(NavigationView sender, NavigationViewSelectionChangedEventArgs args)
        {
            contentFrame.Navigate(typeof(nvTop.memory_palace));
            Console.WriteLine("selection changed");
        }

        private void nvTopLevelNav_ItemInvoked(NavigationView sender, NavigationViewItemInvokedEventArgs args)
        {
            contentFrame.Navigate(typeof(nvTop.memory_palace));
            Console.WriteLine("item invoked");
        }

Печать на консоли только для отладочной цели.В методах ItemInvoked и SelectionChanged я написал пример кода, чтобы проверить, работают ли они.Я напишу это полностью после.Я думаю, что предоставил все детали. Моя проблема в том, что мои методы для событий не вызываются.Как мне исправить ошибку

Заранее спасибо

1 Ответ

0 голосов
/ 24 мая 2019

Это работает и на моем Я думал, что это не работает, потому что я не видел никаких сообщений консоли. Так в UWP Console.writeln () не работает?

Согласно вашему фрагменту кода, вы разрабатываете общее приложение UWP. Итак, ответ - да. Если вы хотите показать некоторую отладочную информацию в окне вывода, вы можете использовать System.Diagnostics.Debug.WriteLine("something...");.

Существует особый случай, когда вы можете Создать консольное приложение для универсальной платформы Windows . Если вы заинтересованы в этом, вы можете увидеть этот документ.

...