Как заставить RibbonButton быть всегда включенным?
У меня есть Microsoft Ribbonbar внутри окна, и каждый RibbonButton связан с определенной командой, как это:
<ribbon:Ribbon x:Key="MyToolbar" Name="MyToolbar" >
<ribbon:RibbonTab Header="File" >
<ribbon:RibbonGroup Header="File" >
<ribbon:RibbonButton Command="{x:Static ApplicationCommands.New}" LargeImageSource="Images/GenericDocument.png" Label="Nuovo" />
<ribbon:RibbonButton Command="{x:Static ApplicationCommands.Open}" SmallImageSource="Images/OpenFolder.png" Label="Apri" />
</ribbon:RibbonGroup>
</ribbon:RibbonTab>
</ribbon:Ribbon>
Я обрабатываю команды таким образом в коде конкретного объекта Canvas, размещенного в том же окне:
private void BindApplicationCommands()
{
// FILE group
this.CommandBindings.Add(new CommandBinding(ApplicationCommands.New, New_Executed));
this.CommandBindings.Add(new CommandBinding(ApplicationCommands.Open, Open_Executed,Open_Enabled));
}
Когда я щелкаю за пределами компонента Canvas, где размещен код обработки, все кнопки внутри ленты становятся отключенными. Это нежелательное поведение, так как я хочу, чтобы некоторые определенные кнопки (например, команды "Создать" и "Открыть") были всегда и глобально включены, несмотря на то, где я нажимаю. Как мне этого добиться? Заранее спасибо за любое предложение.
1 ответ
Хорошо, я решил свою проблему. Поскольку привязки CommandBindings определены внутри компонента Canvas, они не могут быть использованы в более широком (глобальном) контексте, поэтому я переместил их в код окна, чтобы делегировать их выполнение / активацию более гибким способом. Это все:)