2011-01-05 5 views
0

Ich bin mit CAB und SCSF für meine Anwendung und ich bin mit CAB Extensibility Kit von InfragisticsCAB mit UltraDockWorkspace

ich diesen Artikel folgen. Das Beispiel enthält drei Projekte. Shell-Form. gemeinsam und SmartPartLib

Infragistics CAB Extensibility Kit

in SmartPartLib Projekt gibt es Klasse ModuleController.cs. Dieses Verfahren wird einige Ansichten zu schaffen, die auf App Start angezeigt werden, gehen ... Ich möchte, dass wissen, wann

this.WorkItem.Workspaces[Constants.WorkspaceNames.DockWorkspace] 

initialisiert. Ich habe versucht, das gleiche in Probe SCSF Projekt zu tun, aber ich bin immer diese WorkspaceObject als null .. Bitte sagen Sie mir ist jemand mit Infragistics CAB Kit ...

private void AddViews() 
     { 
      //Create the Root View first, but do not show it 
      RootView theRootView = this.WorkItem.SmartParts.AddNew<RootView>(); 


      //Here is the important part: 
      //Whenever dynamically creating controls that will interact with the 
      //UltraDockManager, for the best results, make sure that you 
      //assign a unique value to the control's "Name" property. In this case, 
      //since the dynamic nature of CAB and SmartParts brings us to the 
      //same situation, we also add a value to the SmartPart's "Name" property: 

      TreeView theTreeView = this.WorkItem.SmartParts.AddNew<TreeView>();     //1: Create 
      theTreeView.Name = "theTreeView";             //2: Set Name 
      this.WorkItem.Workspaces[Constants.WorkspaceNames.DockWorkspace].Show(theTreeView); //3: Show it 

      GridView theGridView = this.WorkItem.SmartParts.AddNew<GridView>(); 
      theGridView.Name = "theGridView"; 
      this.WorkItem.Workspaces[Constants.WorkspaceNames.DockWorkspace].Show(theGridView); 

      ChartView theChartView = this.WorkItem.SmartParts.AddNew<ChartView>(); 
      theChartView.Name = "theChartView"; 
      this.WorkItem.Workspaces[Constants.WorkspaceNames.DockWorkspace].Show(theChartView); 

      //Load the layout through the interface 
      ((IRootView)theRootView).LoadDockLayout(); 

      //Finally show the Root View 
      this.WorkItem.Workspaces[Constants.WorkspaceNames.MainWorkspace].Show(theRootView); 

     } 

Antwort

0

Sie können versuchen, die IBuilderAware Schnittstelle implementieren und rufen Sie Ihren AddViews Methode aus der OnBuiltUp Methode. Diese Methode wird von CAB zu einem Zeitpunkt nach dem Initialisieren der Workspace-Auflistung aufgerufen.

+0

Frage ist, wenn der Arbeitsbereich Sammlung initialisiert wird. In dem von Microsoft bereitgestellten Beispiel wird der Arbeitsbereich in der ShellForm.cs-Klasse registriert – Mohsan