Как заставить RibbonButton всегда включаться? - PullRequest
1 голос
/ 19 октября 2010

У меня есть 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, в котором размещен код обработки, все кнопки внутри ленты становятся отключенными . Это нежелательное поведение, так как я хочу, чтобы некоторые определенные кнопки (например, команды "New" и "Open") были всегда и глобально включены , несмотря на то, где я нажимаю. Как мне этого добиться? Заранее спасибо за любые предложения.

1 Ответ

1 голос
/ 19 октября 2010

Хорошо, я решил свою проблему.Поскольку привязки CommandBindings определены внутри компонента Canvas, их нельзя было использовать в более широком (глобальном) контексте, поэтому я переместил их в кодовый фрагмент окна, чтобы более гибко делегировать их выполнение / активацию.Вот и все:)

...