NetAdvantage for Web Client: Silverlight - March 2009 CTP

[Infragistics] Devin Rader / Wednesday, March 25, 2009

This past Monday, we released the NetAdvantage WebClient: Silverlight - March 2009 CTP.  The first and probably most important feature of this release is that CTP’’s are now being built on the recently released Silverlight 3 Beta platform, so after you grab the CTP, you will need to go grab Silverlight 3 Beta and the Blend 3 Preview.

This CTP release includes a bunch of new XamWebGrid features including:

  • Inline Editing of Row Data
  • Enhanced Column Pinning, including the ability to drag and drop pin/unpin columns
  • Enhancements to Column Moving
  • Column Selection
  • Paging (including row island Paging in hierarchical scenarios)


We’ve also added a ton of new events to the API to allow you to plug into user interactions with the grid, as well as begun to utilize the new Commanding framework that we have written.  You will see this in both the sorting and paging behavior of the grid.  In previous releases we had included specific UI elements (like buttons) into our default style and hard coded things to specific events of those UI’s, our new Commanding framework (which is based on WPF Commands) allows us to decouple the UI form the control logic even further.

For example, in previous releases our column pin indicator in the HeaderCellControl was a named Button and the control simply hooked into its click event and toggled the Columns pinned state.  If you had wanted to change the style of the HeaderCellControls Pin indicator you would have been stuck with using a named Button control.  With the Commanding framework, we abstract the toggling of the columns pinned state into a command that you can wire to any event and call.  Now the PinnedIndicator in the HeaderCellControls default template looks like this:

<Grid x:Name="PinnedIndicator" Visibility="Collapsed" Background="Transparent">
            EventName="MouseLeftButtonDown" CommandType="Unfix"/>
    <Path Fill="{StaticResource GridBorderBrush}" Stretch="Fill" 
        Height="10" Width="7" Opacity="1" 
        Data="M 6,4 C6,4 8,4 8,4 8,4 8,9 8,9 8,9 6,9 6,9 6,9 6,4 6,4 zM 5,
              3 C5,3 5,9 5,9 5,9 4,9 4,9 4,9 4,10 4,10 4,10 7,10 7,10 7,
              10 7,13 7,13 7,13 8,13 8,13 8,13 8,10 8,10 8,10 11,10 11,
              10 11,10 11,9 11,9 11,9 10,9 10,9 10,9 10,3 10,3 10,3 5,
              3 5,3 z"/>


Notice that the PinnedIndicator is a Grid with the ig:Commanding.Command attached property applied to it.  The Command property wires the XamWebGrids Unfix command to the grids MouseLeftDownButton even and a Path is used to display the indicator.  You could easily change the grid to a Button and wire the Unfix command to the Buttons Click event.

Over time you will see other controls in NetAdvantage for Silverlight use this same framework, and its also a framework you can use, creating you own application Commands.

Also included in this CTP are two new controls, the XamWebTagCloud and the XamWebTileView.  The XamWebTagClound allows you to easily add TagCloud type UI’s to your application.  Simply bind a list Tag/Frequency values to it and it does the rest, determining the appropriate font size for a tag given its frequency relative to other tags.


The XamWebTileView provides a new twist on Master/Detail views.  The control is actually made up of the XamWebTilePanel (which you can use independent of the XamWebTileView) which allows you to arrange content tiles and place one or more of those tiles in a master (or focused) state, while the remaining tiles are placed into a minimized state.


As always we welcome any and all feedback you have on this and all of the other controls included in the CTP.  You can ask questions or provide feedback by visiting the Silverlight CTP forum, or you can leave your feedback here in the comments section.