Geeks With Blogs

News

View Anthony Trudeau's profile on LinkedIn

Add to Technorati Favorites


Anthony Trudeau

The Infragistics NetAdvantage control suite provides good support for the composite application block (part of the smart client software factory).  However, I ran into the difficulty today when I wanted to extend an existing group in an UltraExplorerBar instance.

I'm using an UltraExplorerBarWorkspace in my ShellLayoutView.  At the start, it contains only one group with the text "Properties" and the key "PropertyGroup".  I have the need for modules to add their own groups and to add items to the "PropertyGroup".  The former is straightforward and just requires you to create a group in the module and add it dynamically to the extension site.  The latter, however, isn't clear at all.

I started out by defining my extension site to use the UltraExplorerBarGroup with the key "PropertyGroup".  The site was registered in my view's presenter class and then referenced in the module's controller class using the following code (simplified for brevity):

UIExtensionSite propertyGroup =

   WorkItem.UIExtensionSites[UIExtensionSiteNames.PropertyGroup];

 

propertyGroup.Add(ViewElementFactory.CreateCoilPropertiesItem());

 

In this code, CreateCoilPropertiesItem returns a new UltraExplorerBarItem.  Unfortunately, the code doesn't work.  You get an exception of type ModuleLoadException with the text:

Failed to load module from assembly ...  Error was: UI element must be a Infragistics.Win.UltraWinExplorerBar.UltraExplorerBarGroup.

 

The UltraExplorerBarGroup can contain other UltraExplorerBarGroup instances as well as UltraExplorerBarItem instances.  Therefore, I tried it again but this time when I registered my UI extension site I registered the Items collection of the UltraExplorerBarGroup like the following:

// property within the ShellLayoutView
internal
UltraExplorerBarItemsCollection PropertyGroup

{

   get

   {

       return _leftWorkspace.Groups["PropertyGroup"].Items;

   }

}

 

// code within the view's presenter

WorkItem.UIExtensionSites.RegisterSite(UIExtensionSiteNames.PropertyGroup, View.PropertyGroup);

 

That did the trick.  And although it wasn't clear it wasn't hard to figure out.

Posted on Tuesday, April 14, 2009 5:33 PM Infragistics , .NET | Back to top


Comments on this post: Using an UltraExplorerBarGroup as a UIExtensionSite

No comments posted yet.
Your comment:
 (will show your gravatar)


Copyright © Anthony Trudeau | Powered by: GeeksWithBlogs.net