Во-первых, превратите ваш «шаблон» в пользовательский элемент управления, для простоты я буду называть его MyControl
со свойством MyData
.
Теперь, скажем, вам нужна горизонтальная прокрутка Panel
, с MyControl
на MyData
, вы можете сделать:
IEnumerable<MyData> = GetMyData();
foreach( MyData thisData in GetMyData() )
{
MyControl thisControl = new MyControl();
thisControl.Dock = Left; // Or right, if you prefer
thisControl.Value = thisData;
panel1.Controls.Add( thisControl ); // Where panel1 is a Panel that represents the container for the scrolling-ness
}
Очевидно, что вы захотите настроить его под свои типы, возможно, при необходимости установите несколько других свойств.