Я чувствую себя немного глупо, когда спрашиваю об этом, но мне трудно найти лучшее решение для этого:
В приложении WPF у меня есть окно с пользовательским контролем. Пользовательский контроль имеет ListBox и DataGrid. ListBox заполняется из StaticResource, и всякий раз, когда что-то выбирается в ListBox, выполняется поиск в службе, которая возвращает данные, которые должны быть заполнены в DataGrid.
Ok. Я могу легко вызвать событие в usercontrol и прослушать главное окно. Это окно может затем искать данные в сервисе и затем вызывать некоторый метод populate / databind в usercontrol, который затем может обновить свой DataGrid. Это возлагает всю ответственность на главное окно.
Мне нравится разделение проблем;) и это не то, о чем должно заботиться главное окно. Если бы это не был пользовательский контроль, я бы использовал внедрение зависимости, чтобы дать ему ссылку на сервис, который может получать данные.
Как вы думаете, что я должен делать? Если я собираюсь пойти по пути DI, как бы я внедрил сервис в моем usercontrol (я могу придумать пару способов, но каков наилучший опыт?) Любое хорошее чтение по этому вопросу?