Вот пара идей, мыслей:
Вы пытаетесь добиться разделения между вашей презентацией (пользовательский контроль) и конкретным типом вашего бизнес-объекта.
Но возникают проблемы, потому что вы тесно связали доступ к данным (DataManager) и презентацию (пользовательский контроль) вашего приложения.
Возможно, вам следует перенести свою цель на отделение уровня представления от бизнес-объектов и уровня данных.
Вот некоторые идеи, которые могут помочь вам достичь этого:
1) Подумайте о создании свойства в пользовательском элементе управления, который содержит данные, и задайте это свойство при загрузке страницы или инициализации страницы. Если вы столкнетесь с жизненным циклом страницы, поскольку загрузка страницы управления запускается до того, как событие загрузки страницы просто создаст ваш собственный метод связывания в вашем пользовательском элементе управления и вызов его после установки свойства пользовательских элементов управления с данными
2) Создайте интерфейс или модель представления для данных, передаваемых в пользовательский элемент управления, и используйте его в качестве типа свойства, содержащего ваши данные - вы можете оставить тип универсальным, но я изо всех сил пытаюсь представить себе пользовательский элемент управления, который будет работать с любым бизнес-объектом, который я могу придумать, так что это кажется плохой идеей
3) Независимо от деталей реализации, ваш DataManager, имеющий ссылку на пользовательский элемент управления, - это то, что вам нужно изменить. Объект с именем DataManager должен нести единоличную ответственность, он должен получать данные и не знать о пользовательском контроле или представлении вашего приложения
Надеюсь, это поможет. Всего лишь одно мнение, удачи.