C #: получить список клиентов и поделиться им на ДВА просмотра - PullRequest
0 голосов
/ 16 ноября 2010

У меня есть список клиентов, показанный в верхнем меню, где каждое имя клиента является пунктом меню.Теперь я хочу, чтобы те же (то же самое = я не хочу перезагружать мои данные из базы данных) клиентов в другом меню.

Оба меню находятся в 2 разных элементах управления пользователя.В каждом UserControl вы можете делать вещи в этом меню клиента.Как бы вы разработали оба меню / UserControls / Presenter, чтобы получить customerList только один раз из базы данных?

Я использую шаблон MVP winforms.

Ответы [ 4 ]

1 голос
/ 16 ноября 2010

Полный вид ответа зависит от того, как вы получаете свои данные из базы данных и затем возвращаетесь в пользовательский контроль.Но так как вы используете «Ведущий», я подозреваю, что у вас есть ссылка на список клиентов.Все, что вам нужно сделать, это передать эту ссылку каждому из двух пользовательских контролов, и оба будут иметь доступ к точно таким же данным экземпляра.

0 голосов
/ 16 ноября 2010

Вы можете загрузить CustomerList в статический список и поделиться этим списком, это своего рода механизм кэширования.

0 голосов
/ 16 ноября 2010

Вы можете подключиться к базе данных один раз и сохранить эти данные локально в наборе данных / данных, затем вы можете передать их и получить к ним доступ в любое время.

0 голосов
/ 16 ноября 2010

Я не знаю, как вы подключаетесь к своей базе данных. Если вы просто используете DataSource для прямого подключения к нему, я не могу вам помочь.

В противном случае вы можете поместить кэширование для каждого запроса в слой доступа к данным, чтобы все элементы управления извлекали свои данные из одного и того же кэша на время запроса.

Существует много способов кэширования данных из базы данных, это был только один пример.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...