I'm not sure exactly why you'd want to do this aside from academic reasons. Since some of the other posters have focused mainly on using controls to create your markup, why not use something like a DataSet to achieve what you're trying to achieve?
You would create a dataset by selecting DataSet from Add > New Item > Data >DataSet from the context menu. DataSets can be Strongly-Typed and provide you full Intellisense features, but this might not be ideal for your scenario. Just thought I'd throw this idea out there.
Using DataSets:
Process: Create a DataSet, create a DataTable, create columns (DataColumns) for the DataTable, instantiate and bind to a given .aspx control.
Standard DataSet/DataTable/DataColumn:
DataSet ds = new DataSet("MyDataSetNameSpace");
DataTable person = new DataTable();
//add columns to the datatable
person.Columns.Add(new DataColumn(typeof(string)), "FamilyName");
person.Columns.Add(new DataColumn(typeof(string)), "GivenName");
Strongly-Typed DataSet:
PersonDataSet personDs = new PersonDataSet("PersonDataSetNameSpace");
//DataTable should already exist in your strongly-typed DataSet because you define the datatables in the vs designer
//accessing the datatable
personDs.Person person = new PersonDataSet.Person();
person.GivenName = "John Eisenhower Smith";
person.FamilyName = "Johnny";//nickname? I'm guessing this might actually be Smith
If you wanted to use the DataSet in Markup, you would bind it to the specific list control you are trying to create a list with.
//you can define the DataSource in Markup or in CodeBehind. You'd have to define a protected or public variable so that you can access the item in your markup.
//In markup, you would set DataSource = <%# Person%>
myGridViewControl.DataBind();//bind the dataset/datatable to the control
MSDN Reference:
https://msdn.microsoft.com/en-us/library/ss7fbaez(v=vs.110).aspx
EDIT:
To accomplish what you accomplish with XAML, you'd have to inject XAML through the use of a Silverlight control. See this post for more information on how to do that:
Is there a way to insert Silverlight XAML into my page using ASP.NET code-behind?
The short answer is in WebForms, it can't be done at the moment. You'd have to accomplish this with hacks because the framework doesn't support it. You could use a C# code block to do what you're trying to do, but you still won't be able to accomplish what you are trying to accomplish correctly.