Я бы порекомендовал использовать контейнер IoC и настроить свой контейнер для предоставления параметра при создании.
Например, вот как выглядит типичный код для UserControl для меня в WPF:
public partial class MyDataGridView : IMyListView
{
public MyDataGridView()
{
InitializeComponent();
}
public MyDataGridView(MyListViewModel viewModel)
{
InitializeComponent();
DataContext = viewModel;
}
}
StructureMap создает для меня MyListViewModel, потому что по умолчанию он ищет самый жадный конструктора затем предоставляет зависимости.В моей конфигурации StructureMap я могу указать, что MyListViewModel должен быть предоставлен с любыми параметрами, необходимыми при создании этого объекта.
С таким контейнером, как StructureMap, мне не нужно «создавать» новые объекты.Когда-либо.