Возможно, я неправильно понимаю ваш вопрос, но вы можете создать собственный UserControl, и всякий раз, когда вам нужно добавить новый элемент управления, просто создайте новый экземпляр этого элемента управления и добавьте его в свою сцену, так что вы можете использовать DataContext
, чтобы помочь с привязкой данных, которую вы можете использовать из контроля вашего копирования:
MyControl newControl = new MyControl { DataContext = controlToCopy.DataContext };
myGrid.Children.Add(newControl);
или подобное ...
или вам нужно, чтобы он был более динамичным?