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