Windows Phone 8 中的 Pivot selectionChanged 事件和单击处理程序
Posted
技术标签:
【中文标题】Windows Phone 8 中的 Pivot selectionChanged 事件和单击处理程序【英文标题】:Pivot selectionChanged Event and click handlers in Windows Phone 8 【发布时间】:2014-04-17 15:35:16 【问题描述】:我不想将我的点击处理程序放在 APP.XAML.CS 中,所以我想将它们留在 pivot.XAML 中。和 pivot.XAML.CS
我该怎么做?
private void Pivot_SelectionChanged(object sender, SelectionChangedEventArgs e)
// MessageBox.Show("Pivot selection changed");
switch (((Pivot)sender).SelectedIndex)
case 0:
// MessageBox.Show("LoginAppBar launched");
ApplicationBar = ((ApplicationBar)Application.Current.Resources["zero"]);
break;
case 1:
// MessageBox.Show("DefaultAppBar launched");
ApplicationBar = ((ApplicationBar)Application.Current.Resources["one"]);
break;
case 2:
//Console.WriteLine("DefaultAppBar launched");
ApplicationBar = ((ApplicationBar)Application.Current.Resources["two"]);
break;
case 3:
//Console.WriteLine("DefaultAppBar launched");
ApplicationBar = ((ApplicationBar)Application.Current.Resources["three"]);
break;
【问题讨论】:
您的数据透视表在 App.xaml 页面中?您能否提供更多细节,例如 Pivot 控件在哪里等? 不,pivot 在 mainpage.xaml 中,但是当我想为 4 个数据透视项放置 4 个应用程序栏时,它会从 app.xaml.cs 本身搜索点击处理程序。但是单击处理程序在 mainpage.xaml 中,顺便说一句,我使用 MSDN 教程添加额外的栏,但我无法控制应用程序栏上的单击处理程序msdn.microsoft.com/en-us/library/windowsphone/develop/… 您可以在 main.xaml 中使用一些名称声明应用程序栏,当枢轴项目发生更改时,您可以将点击项目绑定到按钮并取消绑定其余点击项目的权利 【参考方案1】:您可以通过附加相应枢轴的应用程序栏来处理 MSDN 链接中描述的单击事件。您可以像这样向应用程序栏添加或删除按钮
ApplicationBarIconButton button1 = new ApplicationBarIconButton();
button1.IconUri = new Uri("/Images/icon_search.png", UriKind.Relative);
button1.Text = "Search";
ApplicationBar.Buttons.Add(button1); // adding button
button1.Click -= ShowSearch; // Adding event to button
button1.Click += ShowSearch;
//Removing second button
ApplicationBar.Buttons.Remove(ApplicationBar.Buttons[1] as ApplicationBarIconButton);
如果您对点击事件有疑问,例如您在每个枢轴中都有搜索功能并且您想要绑定搜索事件处理程序。为此,您可以绑定一个事件,并在事件内部根据当前选择的 Pivot 搜索值
private void ShowSearch(object sender, EventArgs e)// event in the application bar button
if (NameOfPivot.SelectedIndex == 0)
// Do your action here
else if (NameOfPivot.SelectedIndex == 1)
// Do your action here
else if (NameOfPivot.SelectedIndex == 2)
// Do your action here
【讨论】:
以上是关于Windows Phone 8 中的 Pivot selectionChanged 事件和单击处理程序的主要内容,如果未能解决你的问题,请参考以下文章
如何将 Windows 商店中的 Windows Phone 应用程序(8.1 XAML)迁移到 8.1 Silverlight?
Windows Phone 8 中的 GetDistanceTo 去了哪里?
ibm mobilefirst for windows phone 8中的registerEventSourceCallback函数问题