UWP:在主页.cs和视图\页面之间传递数据.cs

我有一个主页,其中包含我的导航视图的代码。主页导航到带有 frame.navigate() 的页面。其中一个页面包含用户输入数据的文本框。我想获取输入的数据并使用它来更改另一个页面上显示的内容。


我在这里看过很多关于将数据从一个视图传递到另一个视图的类似帖子,它们都使用frame.navigate(typeof(page),参数)。但是我的参数不在主页上,我有我的导航控件。


MainPage.xaml


<Page>

<Grid>

    <NavigationView x:Name="nvTopLevelNav">

        <NavigationView.MenuItems>

            <NavigationViewItem Icon="Setting" Content="Page1" Tag="Page1" />

            <NavigationViewItem Icon="Rotate" Content="Page2" Tag="Page2" />

            </NavigationView.MenuItems>

        <Frame x:Name="contentFrame"></Frame>

    </NavigationView>

</Grid>

</Page>

MainPage.xaml.cs:


namespace App

{

public sealed partial class MainPage : Page

{

    public MainPage()

    {

        this.InitializeComponent();

    }

    #region NavigationView event handlers

    private void nvTopLevelNav_Loaded(object sender, RoutedEventArgs e)

    {        

        // set the initial SelectedItem

        foreach (NavigationViewItemBase item in nvTopLevelNav.MenuItems)

        {

            if (item is NavigationViewItem && item.Tag.ToString()=="Page1")

            {

                nvTopLevelNav.SelectedItem = item;

                break;

            }

        }

    }

    private void nvTopLevelNav_SelectionChanged(NavigationView sender, NavigationViewSelectionChangedEventArgs args)

    {

        Windows.UI.Xaml.Controls.NavigationViewItem Item = args.SelectedItem as Windows.UI.Xaml.Controls.NavigationViewItem;


        if (Item.Tag is string ItemTag)

        {

            switch (ItemTag)

            {

                case "Page1":

                    contentFrame.Navigate(typeof(SettingsPage));

                    sender.Header = "Page1";

                    break;


                case "Page2":

                    contentFrame.Navigate(typeof(Page2));

                    sender.Header = "Page2";

                    break;

            }

        }

    }

}

}



蓝山帝景
浏览 83回答 1
1回答

慕娘9325324

Xeorge是对的。一般来说,可以将数据保存在单独的数据层中,并且每个 VM 都可以访问此数据层以获取所需的内容。这实际上是您的最佳实践。为了更清楚地说明这一点,请查看官方文档:数据绑定和 MVVM&nbsp;有关示例的详细信息,您可以从上面的文档中看到以下内容:“有关使用基本的、现成的 MVVM 的其他指导,请查看 GitHub 上的客户订单数据库示例。许多其他&nbsp;UWP 应用示例也使用基本的 MVVM 体系结构,流量应用示例包括代码隐藏和 MVVM 版本,并带有描述&nbsp;MVVM 转换的注释。
打开App,查看更多内容
随时随地看视频慕课网APP