Установка IsEnabled в текстовом поле ленты в значение true, ничего не делая - PullRequest
2 голосов
/ 18 февраля 2012

Я работаю над программой для управления сервером Minecraft с локальным пользовательским интерфейсом и удаленным интерфейсом.У меня есть кнопка на ленточной панели, которая включает или отключает удаленный интерфейс, и текстовое поле для ввода порта.В настоящее время я отключаю текстовое поле, когда сетевое подключение включено, но отключение не приводит к повторному включению текстового поля после того, как я снова установил для него значение true (а установка точки останова показывает, что оно по-прежнему равно false).* Спасибо за любую помощь в устранении причин, по которым текстовое поле снова не включается.

1 Ответ

7 голосов
/ 08 августа 2012

Старый вопрос, но я продолжал сталкиваться с ним во время поиска ответа, так что решил, что я все равно отправлю ответ. В элементе управления tapeTextbox есть ошибка, которая приводит к тому, что isenabled всегда имеет значение false, если нет связанной команды. Есть два способа обойти это из того, что я нашел:

1: Создать новый элемент управления на основе ленты текста и переопределить свойство isenabledcore, чтобы всегда возвращать значение true. Как показано здесь Невозможно установить RibbonTextBox isEnable в False

2: Создать фиктивную команду и связать ее с элементом управления

public static readonly ICommand DummyCommand = new RoutedCommand("Dummy", typeof(Control));
    public static void Dummy(Object sender, ExecutedRoutedEventArgs e)
    {
        // Do nothing its a dummy command
    }
    public static void CanDummy(object sender, CanExecuteRoutedEventArgs e)
    {
        e.CanExecute = true;
    } 

как описано в комментарии к этой ссылке http://blogs.msdn.com/b/wpf/archive/2010/10/21/wpf-ribbon-october-2010-update-details.aspx. Поскольку я сказал, что, вероятно, не помогу оригинальному постеру, но я продолжал сталкиваться с ним, ища ответ, чтобы он мог сэкономить кому-то еще несколько минут поиска в Google.

...