Как я решаю эту проблему отображения клавиатуры Visual Studio?

У меня есть отдельная DLL для услуг. Там есть MessageBoxService.
Этот сервис ссылается на окно. Я оставлю реализацию до вас.
Мой Сервис реализует интерфейс для инъекций, но это не так, просто на всякий случай.
Вот фрагмент кода, который он предоставляет:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Threading;

namespace Services.MessageBox
{
    public class MessageBoxService : IMessageBoxService
    {
        Dispatcher dispatcher;
        private Window mainWindow;

        public MessageBoxService()
        {
            dispatcher = Application.Current.Dispatcher;
            mainWindow = Application.Current.MainWindow;
        }

        private void UIThread(Action execute)
        {
            dispatcher.Invoke(execute);
        }

        public void Show(string caption, string message)
        {
            UIThread(() =>
            {
                System.Windows.MessageBox.Show(mainWindow, message, caption, System.Windows.MessageBoxButton.OK);
            });
        }

        public bool? ShowDialog(string caption, string message)
        {
            bool? result = null;

            UIThread(() =>
            {
                result = new Windows.Modal(message, caption).ShowDialog(mainWindow);
            });

            return result;
        }
    }
}

Тогда вы будете использовать его в своей ViewModel следующим образом:

var answer = messageBoxService.ShowDialog("Title Here", "Message to display");  
7
задан Jasper 10 September 2011 в 11:44
поделиться

6 ответов

Я понял проблему: Ctrl + . был переназначен FSI, когда я установил F #. Вот почему сброс сопоставления клавиш не устранил проблему: у меня все еще был F #. И ответ, на который я потерял другие сопоставления: «Те, которые отображаются с помощью FSI» (введите FSI в сопоставлениях клавиатуры; их всего два).

7
ответ дан 6 December 2019 в 12:54
поделиться

У вас есть "рабочая" визуальная студия? Вы можете экспортировать настройки (настройки только с клавиатуры) с этого аппарата и импортировать их на свой аппарат.

3
ответ дан 6 December 2019 в 12:54
поделиться

Ответ Кента: Точно, но чтобы ответить на ваш вопрос более подробно о Resharper и о том, почему он жалуется:

В случае ссылочного типа (класса) будет достаточно проверки на нулевое значение, поскольку это считается значением «по умолчанию» для ссылочного типа. Однако, для типа значения (такого как структура) значение по умолчанию НИКОГДА не будет нулевым. Следовательно, поскольку ваши SerializableEntity и UnSerializableEntity являются обобщенными, вы можете указать, что они являются ссылочными типами или типами значений, поэтому нулевая проверка, вероятно, не соответствует вашим ожиданиям. Что вы хотели бы проверить, так это убедиться, что параметр - это то, чем вы действительно хотите заниматься. В случае ссылочного типа вы не хотите заниматься нулевыми объектами. В случае типа значения вам не нужно беспокоиться о «обнуленном» значении.

Например: допустим, вы указали DateTime в качестве типа данных, с которым имеете дело. Вы действительно хотите добавить DateTimes, для которых не установлено никакого значения? Значением по умолчанию для DateTime является 1/1/0001, а не NULL,

0
ответ дан 6 December 2019 в 12:54
поделиться

Я столкнулся с той же проблемой, (Инструменты-Параметры-> Клавиатура) View.ShowSmartTag - это поле, в котором вы можете вручную переназначить ярлык для Ctrl + .

Я знаю, что дата публикации несколько месяцев, но это должно помочь.

4
ответ дан 6 December 2019 в 12:54
поделиться

В привязках клавиш C # Visual Studio 2008 по умолчанию оба Ctrl + . и Shift + Alt + F10 карта для отображения смарт-тега.

Вы можете загрузить справочный плакат о привязке клавиш Visual C # 2008 здесь .

2
ответ дан 6 December 2019 в 12:54
поделиться

то, что случилось со мной ... убедитесь что клавиша "F lock" на клавиатуре (если у вас такая) включена .. я не шил, что выключаю, и ничего не работает нормально. (F5 - открыть диалог открытия, F10 перейти в режим разделения!)

0
ответ дан 6 December 2019 в 12:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: