我有一個(gè)主頁(yè),其中包含我的導(dǎo)航視圖的代碼。主頁(yè)導(dǎo)航到帶有 frame.navigate() 的頁(yè)面。其中一個(gè)頁(yè)面包含用戶輸入數(shù)據(jù)的文本框。我想獲取輸入的數(shù)據(jù)并使用它來(lái)更改另一個(gè)頁(yè)面上顯示的內(nèi)容。我在這里看過(guò)很多關(guān)于將數(shù)據(jù)從一個(gè)視圖傳遞到另一個(gè)視圖的類似帖子,它們都使用frame.navigate(typeof(page),參數(shù))。但是我的參數(shù)不在主頁(yè)上,我有我的導(dǎo)航控件。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; } } }}}
1 回答

慕娘9325324
TA貢獻(xiàn)1783條經(jīng)驗(yàn) 獲得超4個(gè)贊
Xeorge是對(duì)的。一般來(lái)說(shuō),可以將數(shù)據(jù)保存在單獨(dú)的數(shù)據(jù)層中,并且每個(gè) VM 都可以訪問(wèn)此數(shù)據(jù)層以獲取所需的內(nèi)容。這實(shí)際上是您的最佳實(shí)踐。
為了更清楚地說(shuō)明這一點(diǎn),請(qǐng)查看官方文檔:數(shù)據(jù)綁定和 MVVM 有關(guān)示例的詳細(xì)信息,您可以從上面的文檔中看到以下內(nèi)容:“有關(guān)使用基本的、現(xiàn)成的 MVVM 的其他指導(dǎo),請(qǐng)查看 GitHub 上的客戶訂單數(shù)據(jù)庫(kù)示例。許多其他 UWP 應(yīng)用示例也使用基本的 MVVM 體系結(jié)構(gòu),流量應(yīng)用示例包括代碼隱藏和 MVVM 版本,并帶有描述 MVVM 轉(zhuǎn)換的注釋。
- 1 回答
- 0 關(guān)注
- 110 瀏覽
添加回答
舉報(bào)
0/150
提交
取消