/** * * @date 2014-10-24 * * @author 邓尹平 * * @par 成员列表类 说明 * 主要负责管理成员 提供搜索\排序和操作的方法 * * @par 版权声明 * 深圳市多元世纪信息技术有限公司 版权所有 * * @see 使用此类时参照一些其他类可以写在这里 * * @todo 该类有待完成的任务 一条条列出 完成一条删除一条 * * @bug 该类已知的Bug一条条列出 完成一条删除一条 * */ using System; using System.Windows.Input; namespace Muchinfo.DataPager.Base { public class MuchinfoPagerCommands { private enum CommandId { MoveToFirstPage, MoveToLastPage, MoveToNextPage, MoveToPage, MoveToPreviousPage } #region Fields private static readonly int CommandsCount = Enum.GetNames(typeof(MuchinfoPagerCommands.CommandId)).Length; private static readonly RoutedUICommand[] InternalCommands = new RoutedUICommand[MuchinfoPagerCommands.CommandsCount]; #endregion #region Commands public static ICommand MoveToFirstPage { get { return MuchinfoPagerCommands.EnsureCommand(MuchinfoPagerCommands.CommandId.MoveToFirstPage); } } public static ICommand MoveToLastPage { get { return MuchinfoPagerCommands.EnsureCommand(MuchinfoPagerCommands.CommandId.MoveToLastPage); } } public static ICommand MoveToNextPage { get { return MuchinfoPagerCommands.EnsureCommand(MuchinfoPagerCommands.CommandId.MoveToNextPage); } } public static ICommand MoveToPage { get { return MuchinfoPagerCommands.EnsureCommand(MuchinfoPagerCommands.CommandId.MoveToPage); } } public static ICommand MoveToPreviousPage { get { return MuchinfoPagerCommands.EnsureCommand(MuchinfoPagerCommands.CommandId.MoveToPreviousPage); } } #endregion #region Methods private static RoutedUICommand EnsureCommand(CommandId commandId) { lock (MuchinfoPagerCommands.InternalCommands.SyncRoot) { if (MuchinfoPagerCommands.InternalCommands[(int)commandId] == null) { var command = new RoutedUICommand(MuchinfoPagerCommands.GetUIText(commandId), commandId.ToString(), typeof(MuchinfoPagerCommands)); MuchinfoPagerCommands.InternalCommands[(int)commandId] = command; } } return MuchinfoPagerCommands.InternalCommands[(int)commandId]; } private static string GetUIText(CommandId commandId) { switch (commandId) { case MuchinfoPagerCommands.CommandId.MoveToFirstPage: return "Move to first page"; case MuchinfoPagerCommands.CommandId.MoveToLastPage: return "Move to last page"; case MuchinfoPagerCommands.CommandId.MoveToNextPage: return "Move to next page"; case MuchinfoPagerCommands.CommandId.MoveToPage: return "Move to page"; case MuchinfoPagerCommands.CommandId.MoveToPreviousPage: return "Move to previous page"; default: return string.Empty; } } #endregion } }