IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

[CAB] CommandHandler & Execute


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite
    Avatar de shwin
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    568
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2003
    Messages : 568
    Par défaut [CAB] CommandHandler & Execute
    J'ai mon shell et jai 1 module qui est loaddé. Dans workitem de ce module, j'enrégistre un CommandHandler sur ma méthode
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    [CommandHandler("DispatchClick")]
    		public void OnGroupClick(object sender, EventArgs e)
    		{
    			this.Activate();
    			Schedules.MainWorkItem schedules = WorkItems.AddNew<Schedules.MainWorkItem>("Schedules");
    			schedules.Run(Workspace);
     
    			LineUp.MainWorkItem lineUp = WorkItems.AddNew<LineUp.MainWorkItem>("LineUp");
    			lineUp.Run(Workspace);
    		}
    Sur le run de ce workitem, je créé un ExplorerBarGroup qui est ensuite placé dans le site (ExplorerBarWorkspace) qui est situé sur dans mon shell
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    void ISubSystem.Run(IWorkspace workspace)
    		{
    			Run();
    			Workspace = workspace;
     
    			UltraExplorerBarGroup group = new Shell.Common.CommandExplorerBarGroup("Dispatch", "DispatchClick");
    			group.Text = "Dispatch";
    			group.Settings.AppearancesLarge.HeaderAppearance.Image = Properties.Resources.Dispatch;
    			group.Settings.Style = GroupStyle.LargeImagesWithText;
    			UIExtensionSites["MainExplorerBar"].Add<UltraExplorerBarGroup>(group);
     
    			UIExtensionSites.RegisterSite(Dispatch.Common.Sites.SIDEBAR, group.Items);
    		}
    L'enrégistrement de mon site dans le program.cs
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    protected override void AfterShellCreated()
    		{
    			base.AfterShellCreated();
     
    			RootWorkItem.UIExtensionSites.RegisterSite("MainExplorerBar", this.Shell.MainExplorerBarWorkspace);
    			RootWorkItem.UIExtensionSites.RegisterSite("MainToolBar", this.Shell.MainToolBarWorkspace.Ribbon);
    			CreateMainMenu();
    		}

    Quand je sélectionne un explorerBarGroup dans mon shellform, j'exécute la command qui est associé à ce group
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    	private void explorerBarWorkspace_GroupClick(object sender, Infragistics.Win.UltraWinExplorerBar.GroupEventArgs e)
    		{
    			Common.CommandExplorerBarGroup commandGroup = e.Group as Common.CommandExplorerBarGroup;
    			if (commandGroup != null)
    			{
    				RootWorkItem.Commands[commandGroup.CommandName].Execute();
    			}
    		}
    Voila que je suis surpris, le RootWorkItem.Commands[commandGroup.CommandName] ne contient pas ma commande. Pourtant elle devrait y être.

    Si je rajoute un handler directement dans mon shellform
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    [CommandHandler("DispatchClick")]
    		public void OnGroupClick(object sender, EventArgs e)
    		{
     
    		}
    Et bien, magie, mes 2 handler se font appeler (celui de mon shellform et celui dans mon module de dispatch).

    Qqn sait pk mon handler de mon module n'est pas enrégistré dans la collections de commands du RootWorkItem ?

  2. #2
    Membre émérite
    Avatar de shwin
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    568
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2003
    Messages : 568
    Par défaut
    Je suis venu à la conclusion que les child workitem ne peuvent pas enrégistré un command handler et ensuite le root workitem soit capable de le déclanché.

    Cependant, si le root workitem créé un command handler, les child workitem sont capable de le déclanché.

    J'ai extentionner le UltraExplorerBarGroup pour y rajouter un event click pour faire ce que javais de besoin

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Executer un fichier Cab
    Par zerobug dans le forum C#
    Réponses: 8
    Dernier message: 30/06/2008, 19h18
  2. [Kylix] Probleme d'execution de programmes...
    Par yopziggy dans le forum EDI
    Réponses: 19
    Dernier message: 03/05/2002, 14h50
  3. [Kylix] Demarrer en cliquant sur l'executable ???
    Par Anonymous dans le forum EDI
    Réponses: 2
    Dernier message: 26/04/2002, 11h24
  4. [Kylix] Execution d'une application hors de l'edi
    Par Sadam Sivaller dans le forum EDI
    Réponses: 1
    Dernier message: 20/04/2002, 23h22
  5. Réponses: 2
    Dernier message: 17/03/2002, 19h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo