Spread for Silverlight does not have inbuilt feature to set the cell type for cells like its other versions (Asp.net and Windows Forms). But you can still put a Silverlight control in a cell using the CustomDrawingObject Class. In this example I will show how you can put a ListBox control in Spread cell using Custom Drawing Object API. Have a look at the code used:


public partial class MainPage : UserControl  
{  
   public MainPage()  
   {  
      InitializeComponent();  
      this.gcSpreadSheet1.Sheets.Clear();  
      this.gcSpreadSheet1.Sheets.Add(new MyWorksheet());  
      var sheet = this.gcSpreadSheet1.ActiveSheet;  
   }  
}  

public class ControlDrawingObject : CustomDrawingObject  
{  
   private Control _rootElement;  
   public ControlDrawingObject(int row, int col, Control control) : base(row, col) { _rootElement = control; this.ShowDrawingObjectOnly = true; }  

   public override FrameworkElement RootElement  
   {  
      get { \_rootElement.Margin = new Thickness(1); return \_rootElement; }  
   }  
}  

public class MyWorksheet : Worksheet  
{  
   public bool DrawingObjectVisible { get; set; }  
   public override DrawingObject[] GetDrawingObject(int row, int column, int rowCount, int columnCount)  
   {  
      if (row != 0 || column != 0) return base.GetDrawingObject(row, column, rowCount,  columnCount);  
      DrawingObject drawobj;  

      ListBox mylist = new ListBox();  
      mylist.ItemsSource = new String[] { "One", "Two", "Three", "Four" };  
      mylist.SelectionMode = SelectionMode.Single;  
      drawobj = new ControlDrawingObject(row, column, mylist);  
      return new DrawingObject[] { drawobj };  
   }  
}  

Refer to the given samples for complete implementation. Download VB Sample Download C# Sample