Уровень 0 Является ли ListView? Уровень 1A и уровень 1b - это Gridview, которые вы хотите внутри двух разных шаблонных столбцов внутри уровня 0. Тогда уровень A и уровень b - это еще два вида сетки внутри еще 2 шаблонных столбцов на уровне 1a и уровне 1b?
Возможно, вы сможете преобразовать ту же концепцию, которую использует вложенный GridView, в WPF
http://forums.asp.net/t/1071521.aspx
Я сам не пробовал в wpf, но gridviews, похоже, были построены аналогично.
Просто используйте панели вместо Div, и вам не нужно беспокоиться о вызовах клиент / сервер.
Также наборы данных работают лучше, чем списки.
Вот некоторый псевдо-код о том, как я настроил Nested Datasets до
DataSet ds1 = new DataSet();
ds1.Tables.Add(m_DataLayer.GetRealA_Data(X, Y).Copy()); Returns Table ["A"]
ds1.Tables.Add(m_DataLayer.GetB_Empty().Copy());// Returns Table ["B"]
ds1.Tables.Add(m_DataLayer.GetC_Empty().Copy());// Returns Table ["C"]
ds1.Tables.Add(m_DataLayer.GetD_Empty().Copy());// Returns Table ["D"]
ds1.Relations.Add("b", ds1.Tables["A"].Columns["A_id"], ds1.Tables["B"].Columns["A_id"]);
ds1.Relations.Add("c", ds1.Tables["B"].Columns["B_id"]
, ds1.Tables["C"].Columns["B_id"]);
ds1.Relations.Add("d", ds1.Tables["C"].Columns["C_id"]
, ds1.Tables["D"].Columns["D_id"]);
dt_TheGridViewDataSet = ds1;
TheGridView.DataSource = ds1;