【问题标题】:How to add menu item to Application Bar to needed index?如何将菜单项添加到应用程序栏到所需的索引?
【发布时间】:2012-05-28 19:10:06
【问题描述】:

我正在使用此代码将菜单项添加到应用程序栏

ApplicationBar.MenuItems.Insert(0, refreshMenu);

我从 XAML 添加了另外 2 个项目。
但是添加的菜单项正在添加到列表的末尾并成为最后一个菜单项,而不是第一个。

有没有什么方法可以将菜单项添加到所需的索引而不删除所有项目并按需要的顺序添加?

编辑:当我从第一个索引中删除菜单项时,它正在删除刷新菜单,所以问题在于菜单项的呈现。

谢谢

【问题讨论】:

  • 什么时候添加菜单项?尝试在 Loaded 事件中执行此操作。
  • 我在单击应用栏按钮之一时添加菜单项,所以我无法在 Loaded 事件中执行此操作
  • 哇,这是一个非常奇怪的 UI 范例。你确定这是用户友好的吗?在 Windows 中想象一下;当您单击菜单项时,菜单中会添加更多项....不确定。
  • 是的,我确信这是对用户友好的 :)) 我认为您错过了一件事。 1 当您单击按钮时添加菜单项,而不是菜单。我有一个页面,我将在其中显示一些数据。默认情况下它是空白的。用户从应用栏中选择按钮后,数据将添加到页面。并且还添加了“刷新”菜单项。当然我可以禁用“刷新”菜单,但在我的情况下,添加它比启用/禁用它更加用户友好。
  • 我认为添加它对用户不太友好。如果它在那里,但禁用了你至少知道它在那里。如果它一次不存在,但是下一次你无法知道它是如何添加的。另外,刷新之类的东西总是可以启用的,有时它不会做任何事情

标签: windows-phone-7 windows-phone-7.1 application-bar


【解决方案1】:

看起来这可能是框架中的一个错误(这不是一个真正常见的场景)。我会推荐以下之一(按推荐顺序):

  • 始终保留该项目,但在不需要时禁用它(根据 Shawn 的评论)。内置应用程序已经这样做了。
  • 将整个 ApplicationBar 交换到包含该项目的另一个实例(这是支持的方案)
  • 删除所有项目并按照您想要的顺序重新添加它们

【讨论】:

  • 这就是我现在正在做的事情。看起来这是 WP7 的错误
  • @SamvelSiradeghyan - 我已经用更多选项更新了我的答案
  • 感谢您的回答,我已经更改了代码以添加代码中的所有项目。
  • 是的,@Richard Szalay,我正在从代码创建菜单项,我正在清除菜单项并每次都添加具有正确顺序的新项
【解决方案2】:

我没有找到除我使用之外的任何其他解决方案(删除所有项目,然后每次从代码中添加)。所以我认为唯一可以接受的方法是我使用的一种。

【讨论】:

    猜你喜欢
    • 2012-11-08
    • 2012-10-09
    • 1970-01-01
    • 1970-01-01
    • 2010-11-05
    • 2011-11-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多