我在App.xaml中声明了一个全局AppBar:
<Application.Resources>
<shell:ApplicationBar x:Name="mAppBar_Favorites" Mode="Default" Opacity="1.0" IsMenuEnabled="True" IsVisible="True">
<shell:ApplicationBarIconButton IconUri="/mAppData/feature.camera.png" Text="Kamera" Click="btnAppBar_OpenCamera_Click"/>
<shell:ApplicationBarIconButton IconUri="/mAppData/edit.png" Text="Favoriten" Click="btnAppBar_EditFavorites_Click"/>
<shell:ApplicationBarIconButton IconUri="/mAppData/refresh.png" Text="Refresh" Click="btnAppBar_ReloadMainPage_Click"/>
<shell:ApplicationBarIconButton IconUri="/mAppData/sort.png" Text="Sortieren" Click="btnAppBar_SortOrder_Click"/>
<shell:ApplicationBar.MenuItems>
<shell:ApplicationBarMenuItem Text="Einstellungen" Click="btnAppBar_ShowSettings_Click"/>
<shell:ApplicationBarMenuItem Text="Über WhaGoO" Click="btnAppBar_About_Click"/>
</shell:ApplicationBar.MenuItems>
</shell:ApplicationBar>
</Application.Resources>
在App.xaml.cs中,我定义了按钮点击事件的方法,如下所示:
private void btnAppBar_SortOrder_Click(object sender, EventArgs e)
{
MessageBox.Show("Sortierreihenfolge der Listeneinträge ändern...");
}
在某些页面上,我在代码后面的页面中显示带有此代码的AppBar:
this.ApplicationBar = ((ApplicationBar)Application.Current.Resources["mAppBar_Favorites"]);
为此,每一件事都很好。但现在,在某些页面上,我必须访问页面的PivotControl来决定Uri导航到。例如,使用全局AppBar的“刷新”按钮会发生这种情况:
private void btnAppBar_ReloadMainPage_Click(object sender, EventArgs e)
{
int mPivotIndex = Convert.ToInt16(pvtMainPivot.SelectedIndex.ToString());
if (mPivotIndex == 1)
{
// Tab "Umgebung" aktualisieren:
MainPage.fGetSurroundings();
}
}
我的应用主页有一个数据页面。现在我用更多页面扩展它,并且不想将AppBar“复制”到每个新页面。
如何通过导航和访问页面上的项目来解决这些问题?
答案 0 :(得分:0)
对于每个人,他们都对解决方案感兴趣:
App.xaml.cs:
private void btnAppBar_ReloadMainPage_Click(object sender, EventArgs e)
{
// calling a method of the page:
((MainPage)App.RootFrame.Content).MyMethod();
// accessing a value:
var mValue = MainPage.myValue.toString();
}
MainPage.xaml.cs中:
public static int myValue;
public void MyMethod()
{
// do stuff
}