2012-03-20 2 views
0

Мне кажется, что это глупо, если у меня возникли проблемы с поиском наилучшего решения:Кто должен нести ответственность за занесение данных в usercontrol?

В приложении WPF у меня есть окно, содержащее пользовательское управление. Usercontrol имеет ListBox и DataGrid. ListBox заполняется из StaticResource, и всякий раз, когда что-то выбирается в ListBox, выполняется поиск в службе, которая возвращает данные, которые будут заполнены в DataGrid.

Хорошо. Я могу легко поднять событие в usercontrol и прослушать его в главном окне. Затем это окно может найти данные в службе, а затем вызвать некоторый метод populate/databind в usercontrol, который затем может обновить свой DataGrid. Это ставит всю ответственность в основное окно.

Мне нравится разделение беспокойства;) и это не то, о чем должно заботиться главное окно. Если бы это не было usercontrol, я бы использовал инъекцию denpendency, чтобы дать ему ссылку на сервис, который может получить данные.

Как вы думаете, что я должен делать? Если я должен пойти на DI-путь, как бы я ввел эту услугу в свой usercontrol (я могу подумать о нескольких способах, но что лучше всего подходит?) Любые хорошие чтения по этому вопросу?

ответ

2

Принятый способ создания ViewModels (на основе архитектуры MVVM). ViewModels - это объекты, которые специально предназначены для привязки данных.

Некоторые чтения по теме:

Starting Tutorial

A framework for MVVM

http://en.wikipedia.org/wiki/Model_View_ViewModel

+0

Хлоп! Спасибо за информацию. Я думаю, что для этого небольшого приложения я могу найти более простое решение. Но определенно я буду читать :) –

+0

Как только вы привыкнете к этому, вы можете сделать это так же быстро, используя MVVM :) – Bas

Смежные вопросы