Exemplo n.º 1
0
        public void Show()
        {
            do
            {
                PrintMenu();
                var key = Console.ReadKey(true);
                switch (key.Key)
                {
                case ConsoleKey.DownArrow:
                    _selectedOption = _options[(_options.IndexOf(_selectedOption) + 1) % (_options.Count)];
                    break;

                case ConsoleKey.UpArrow:
                    var index = Math.Abs((_options.IndexOf(_selectedOption) - 1) % (_options.Count));
                    _selectedOption = _options[index];
                    break;

                case ConsoleKey.LeftArrow:
                    _selectedOption.Left();
                    break;

                case ConsoleKey.RightArrow:
                    _selectedOption.Right();
                    break;

                case ConsoleKey.Enter:
                    _selectedOption.Execute(Arguments);
                    break;

                case ConsoleKey.Escape:
                    ShouldShow = false;
                    break;
                }
            } while (ShouldShow);
        }
Exemplo n.º 2
0
        public Menu(string title, IEnumerable <MenuOption> options)
        {
            _title     = title;
            _options   = options.ToList();
            ShouldShow = true;

            _selectedOption = _options[0];
        }