Xaml UWP C#WINUI导航查看如何访问其他页面/视图

Xaml UWP C#WINUI导航查看如何访问其他页面/视图,xaml,uwp,windows-10-iot-core,navigationview,winui,Xaml,Uwp,Windows 10 Iot Core,Navigationview,Winui,根据教程,我正在使用导航视图编写一个应用程序。 我希望有人能帮助澄清两件事 什么是放置常规程序的最佳实践?在MainPage.xaml.cs或相应视图中的xaml中 如何在不同的视图中更新我的xaml元素,例如textblock? 如。 我在启动时运行了一个readHardwareID例程来读取MainPage.xaml.cs中的硬件ID,如何在InfoPage.xaml中显示信息 我的用户界面 请告知, 谢谢 更新日期:06-08-2020 我正在尝试将一个简单的AppVerisonte

根据教程,我正在使用
导航视图
编写一个应用程序。
我希望有人能帮助澄清两件事

  • 什么是放置常规程序的最佳实践?在
    MainPage.xaml.cs
    或相应视图中的
    xaml

  • 如何在不同的视图中更新我的
    xaml
    元素,例如
    textblock
    ? 如。 我在启动时运行了一个
    readHardwareID
    例程来读取
    MainPage.xaml.cs
    中的硬件ID,如何在
    InfoPage.xaml
    中显示信息

  • 我的用户界面

    请告知, 谢谢

    更新日期:06-08-2020

    我正在尝试将一个简单的AppVerison
    text
    从主页传递到InfoPage,以测试
    OnNavigateTo
    。但是,当我运行代码并单击
    info
    选项卡时,我遇到了这个错误。

    主页代码

    public String AppVersionName = "Test version 1.0";
    
    private void nvTopLevelNav_ItemInvoked(NavigationView sender, NavigationViewItemInvokedEventArgs args)
        {
            if (args.IsSettingsInvoked)
            { 
                contentFrame.Navigate(typeof(SettingsPage));    
            } else    
            {
                TextBlock ItemContent = args.InvokedItem as TextBlock;
                if (ItemContent != null)
                {
                    switch (ItemContent.Tag)
                    {
                        case "Nav_Home":
                            contentFrame.Navigate(typeof(HomePage));
                            break;
    
                        case "Nav_Devices":
                            contentFrame.Navigate(typeof(DevicesPage));
                            break;
    
                        case "Nav_Log":
                            contentFrame.Navigate(typeof(LogPage));
                            break;
    
                        case "Nav_Info":
                            contentFrame.Navigate(typeof(InfoPage));
                            break;
                    }
                }
            }
    
    信息代码

    public sealed partial class InfoPage : Page
    {
        private MainPage mainPage;
    
        string appVersion; 
    
        public InfoPage(MainPage page)
        {
            this.InitializeComponent();
            mainPage = page;
        }
    
        protected override void OnNavigatedTo(NavigationEventArgs e)
        {
            base.OnNavigatedTo(e);
    
            var data = e.Parameter;
            appVersion = mainPage.AppVersionName; 
    
            readHardwareID();
        }
    
        public void readHardwareID()
        {
            var deviceIdtoken = HardwareIdentification.GetPackageSpecificToken(null);
            var deviceId = deviceIdtoken.Id;
            var deviceIdReader = DataReader.FromBuffer(deviceId);
    
            byte[] deviceIdbytes = new byte[deviceId.Length];
            deviceIdReader.ReadBytes(deviceIdbytes);
    
            DeviceID.Text = BitConverter.ToString(deviceIdbytes);
    
            var sysIdToken = SystemIdentification.GetSystemIdForPublisher();
            var sysId = sysIdToken.Id;
            var sysIdReader = DataReader.FromBuffer(sysId);
    
            byte[] sysIdbytes = new byte[sysId.Length];
            sysIdReader.ReadBytes(sysIdbytes);
    
            SystemID.Text = BitConverter.ToString(sysIdbytes);
    
            // get the system family information
            string deviceFamily = AnalyticsInfo.VersionInfo.DeviceFamily;
            Device.Text = deviceFamily;
    
            // get the system version number
            var deviceFamilyVersion = AnalyticsInfo.VersionInfo.DeviceFamilyVersion.ToString();
            var version = ulong.Parse(deviceFamilyVersion);
            var majorVersion = (version & 0xFFFF000000000000L) >> 48;
            var minorVersion = (version & 0x0000FFFF00000000L) >> 32;
            var buildVersion = (version & 0x00000000FFFF0000L) >> 16;
            var revisionVersion = (version & 0x000000000000FFFFL);
            var systemVersion = $"{majorVersion}.{minorVersion}.{buildVersion}.{revisionVersion}";
            OSVersion.Text = systemVersion.ToString();
            AppVersion.Text = appVersion;
    
        }
    }
    
    什么是放置常规程序的最佳实践?在MainPage.xaml.cs或各自视图中的xaml中

    如果您想使用
    NavigationView
    作为应用程序的基本架构,我们建议您使用制作
    NavigationView
    UWP模板应用程序。您可以使用
    Windows Template Studio
    将特定的模板添加到页面中。有关更多信息,请参阅链接

    如何在不同的视图中更新xaml元素(如textblock)?例如,我在启动时运行了readHardwareID例程,以读取MainPage.xaml.cs中的硬件ID。如何在InfoPage.xaml中显示信息

    如果已在
    主页
    中加载数据,则可以在导航到
    InfoPage
    并从OnNavigatedTo覆盖方法获取数据时,使用
    框架导航
    方法来分页参数

    protected override void OnNavigatedTo(NavigationEventArgs e)
    {
        base.OnNavigatedTo(e);
    
        var data = e.Parameter;
    }
    
    什么是放置常规程序的最佳实践?在MainPage.xaml.cs或各自视图中的xaml中

    如果您想使用
    NavigationView
    作为应用程序的基本架构,我们建议您使用制作
    NavigationView
    UWP模板应用程序。您可以使用
    Windows Template Studio
    将特定的模板添加到页面中。有关更多信息,请参阅链接

    如何在不同的视图中更新xaml元素(如textblock)?例如,我在启动时运行了readHardwareID例程,以读取MainPage.xaml.cs中的硬件ID。如何在InfoPage.xaml中显示信息

    如果已在
    主页
    中加载数据,则可以在导航到
    InfoPage
    并从OnNavigatedTo覆盖方法获取数据时,使用
    框架导航
    方法来分页参数

    protected override void OnNavigatedTo(NavigationEventArgs e)
    {
        base.OnNavigatedTo(e);
    
        var data = e.Parameter;
    }
    

    我在下面的链接中找到了一个关于
    导航的简单解释

    由于我是一个硬件开发人员,没有太多的软件开发背景,官方文档中的示例和参考资料有限,这让我感到困惑

    我建议这个简单的例子将能够帮助很多初学者,因为它使它非常简单,直接和清晰


    我在下面的链接中找到了一个关于
    导航的简单解释

    由于我是一个硬件开发人员,没有太多的软件开发背景,官方文档中的示例和参考资料有限,这让我感到困惑

    我建议这个简单的例子将能够帮助很多初学者,因为它使它非常简单,直接和清晰


    我真的不明白
    如何导航到
    上。它应该在my
    MainPage.xaml.cs
    InfoPage.xaml.cs
    上实现吗?我读过,但没有太多的样本供我参考。请帮忙。谢谢。我已经更新了我的问题,我试过了,但是我遇到了一些错误。你能给我个建议吗。谢谢。请使用此方法传递参数。我仍然很难理解,因为我参考了GitHub UWP示例(如xamlUIgallery)中的其他示例,我找不到在页面之间传递数据的示例。我不太理解导航到
    是如何工作的。它应该在my
    MainPage.xaml.cs
    InfoPage.xaml.cs
    上实现吗?我读过,但没有太多的样本供我参考。请帮忙。谢谢。我已经更新了我的问题,我试过了,但是我遇到了一些错误。你能给我个建议吗。谢谢。请使用此方法传递参数。我仍然很难理解,因为我参考了GitHub UWP示例中的其他示例,如xamlUIgallery,我找不到在页面之间传递数据的示例。