如何获取 Windows Phone 应用程序栏中的按钮数



我的Windows Phone 8.1 Silverlight应用程序中有一个应用程序栏。它包含一个ApplicationBarButton当用户滚动到LongListSelector中的某个点时,另一个按钮将添加到ApplicationBar中,如下所示:

for (int i = 0; i < 1; i++)
{
     ApplicationBarIconButton scrollToToday = new ApplicationBarIconButton();
     scrollToToday.Text = "idag";
     scrollToToday.IconUri = new Uri("/Assets/AppBar/today_dark.png", UriKind.Relative);
     parent.ApplicationBar.Buttons.Add(scrollToToday);
}

当用户滚动回原始点起点时,我将其删除:

parent.ApplicationBar.Buttons.RemoveAt(1);
但是,当应用启动时,

当应用到达该代码行时,应用会崩溃,因为应用在原始起点启动,然后没有第二个按钮要删除。我认为这与我首先必须检查ApplicationBar是否包含多个按钮有关,则可以删除索引 1 处的按钮。但是我该怎么做呢?

首先,您不需要for循环来添加按钮,因为您只添加一个:

 ApplicationBarIconButton scrollToToday = new ApplicationBarIconButton();
 scrollToToday.Text = "idag";
 scrollToToday.IconUri = new Uri("/Assets/AppBar/today_dark.png", UriKind.Relative);
 parent.ApplicationBar.Buttons.Add(scrollToToday);

然后,如果我理解正确,如果有多个按钮,您要删除最后一个按钮。如果是这样,您可以使用以下代码:

var count = parent.ApplicationBar.Buttons.Count;
if (count >= 2)
{
    parent.ApplicationBar.Buttons.RemoveAt(count - 1);
}

(将count存储在临时变量中不是强制性的,我这样做只是为了提高可读性)

首先检查按钮的数量,你需要 Linq:

 using System.Linq;
 ...
 if(parent.ApplicationBar.Buttons.Count() > 1)
      parent.ApplicationBar.Buttons.RemoveAt(1);

相关内容

  • 没有找到相关文章

最新更新