如何获取 Windows Phone 应用程序栏中的按钮数
How to get number of buttons in an Windows Phone application bar
我的 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 处的按钮有关。但是我该怎么做呢?
首先检查按钮的数量,为此你需要 Linq:
using System.Linq;
...
if(parent.ApplicationBar.Buttons.Count() > 1)
parent.ApplicationBar.Buttons.RemoveAt(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
存储在临时变量中不是强制性的,我这样做只是为了提高可读性)
我的 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 处的按钮有关。但是我该怎么做呢?
首先检查按钮的数量,为此你需要 Linq:
using System.Linq;
...
if(parent.ApplicationBar.Buttons.Count() > 1)
parent.ApplicationBar.Buttons.RemoveAt(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
存储在临时变量中不是强制性的,我这样做只是为了提高可读性)