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