2010-11-24 4 views
5

je vois la plupart des exemples de ruban WPF utiliser là un code commeRibbonCommand n'a pas été trouvé

xmlns:r="clr-namespace:Microsoft.Windows.Controls.Ribbon;assembly=RibbonControlsLibrary" 

Je reçois cette erreur ... "Le type « r: RibbonCommand » était introuvable Vérifiez qu'il ne manque pas de référence d'assembly et que tous les assemblys référencés ont été créés. "

Utilisation de VS 2010, .NET 4.0.

J'essaie de comprendre comment ajouter un bouton au ruban et exécuter du code/commande quand on clique dessus.

Merci.

+0

L'obtention de RibbonGroupSizeDefinitionCollection n'existe pas dans l'espace de noms. J'ai téléchargé cette revue de MS et je reçois les mêmes erreurs. Quelque chose ne va pas avec ma machine? Http: //windowsclient.net/downloads/folders/hands-on-labs/entry76491.aspx – knockando

+1

La classe RibbonCommand n'existe pas dans http://msdn.microsoft.com/fr-fr/ library/microsoft.windows.controls.ribbon.aspx – knockando

Répondre

9

Si vous utilisez le nouveau ruban Microsoft WPF, le type RibbonCommand a été supprimé. La propriété Command est maintenant un type ICommand.

Pour définir la commande sur un RibbonButton, vous pouvez effectuer les opérations suivantes:

<ribbon:RibbonButton Command="ApplicationCommands.Copy" /> 

ou utiliser une commande qui implémente ICommand.

1

Vous devez également référencer l'assemblage dans le projet lui-même.

+0

J'ai oublié de mentionner que je le fais déjà. Le projet fait référence à RibbonControlsLibrary (C: \ Program Files \ Microsoft Ribbon pour WPF \ V4.0 \ RibbonControlsLibrary.dll). – knockando

3

Vous pouvez également utiliser ICommand pour implémenter votre propre commande.

Cette classe doit être en code derrière.

public class MyCommand : ICommand 
{ 
    public void Execute(object parameter) 
    { 
     string hello = parameter as string; 
     MessageBox.Show(hello, "World"); 
    } 

    public bool CanExecute(object parameter) 
    { 
     return true; 
    } 

    public event EventHandler CanExecuteChanged; 
} 

Vous devez disposer de Ressources pour utiliser cette commande.

<DockPanel.Resources> 
    <local:MyCommand x:Key="mycmd"/> 
</DockPanel.Resources> 

Vous devez également modifier votre élément xaml pour appeler cette commande.

<ribbon:RibbonButton Command="{StaticResource mycmd}" CommandParameter="Hello, command" Label="Copy" LargeImageSource="Images/LargeIcon.png"/> 
Questions connexes