Старый вопрос, но я продолжал сталкиваться с ним во время поиска ответа, так что решил, что я все равно отправлю ответ. В элементе управления 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.