Following on from this post , I changed the library code that I was using a little to make the job of creating HTML ( specifically in my case a table ) in Silverlight 2 easier again. If I want to get hold of a div called myDiv and create a table within it then I can do ( as an example ); HtmlElement el = HtmlPage.Document.GetElementById( "myDiv" ); el.Add( new HElement(HElementType.table, new HElement(HElementType.tbody, new HElement(HElementType.tr, HElement.Replicate(HElementType.th, "Number" , "Squared" , "Cubed" )), from i in Enumerable.Range(1, 10) select new HElement(HElementType.tr, HElement.Replicate(HElementType.td, i.ToString(), (i * i).ToString(), (i * i * i).ToString()), new HElement(HElementType.td, new HElement(HElementType.input, new HAttribute(HAttributeType.type, "button" ), new HAttribute(HAttributeType. value , "click" ), new HEventHandler(HEventType.onclick, (s, a) => MessageBox.Show( string .Format( "You click on row number {0}" , i))))))))); I changed the supporting classes around a little...