Связь между пользовательскими элементами управления - PullRequest
1 голос
/ 12 марта 2011

У меня есть TabControl с двумя вкладками. На одной вкладке есть список магазинов, а на другой список сотрудников. На вкладке магазина у меня есть кнопка, которая отображает всех сотрудников магазина; чтобы сделать это, я хочу переключиться на другую вкладку и вызвать метод showEmployeesFromStore(store_id store) из пользовательского элемента управления этой вкладки. Как бы я это сделал?

Ответы [ 2 ]

1 голос
/ 12 марта 2011

У вас неправильная ментальная модель.Тот факт, что пользовательский элемент управления не отображается в TabControl, не означает, что код также невидим.Просто вызовите метод элемента управления в вашем коде, он должен быть общедоступным.Затем измените свойство SelectedIndex элемента управления вкладкой, чтобы переключить активную страницу вкладки.

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

0 голосов
/ 12 марта 2011

Я бы выставил событие в пользовательском элементе управления магазина для SelectedStoreChanged или что-то в этом роде.Верните вновь выбранный store_id в делегат события.

Подпишитесь на это событие с помощью вашей формы.Когда событие запускается, работа с формой зависит от этой информации.В этом случае он извлекает store_id из события SelectedStoreChanged магазина UserControl и передает его в EmployeeUserControl.showEmployeesFromStore(store_id store)

. Не допускайте, чтобы ваши элементы управления игнорировали друг друга.Пусть владелец элементов управления решает, как реагировать на любые события, вызываемые элементами управления.Вы будете лучше спать с мечтами об увеличении удобства использования, лучшем разделении предметных областей и меньшем количестве рабочих выходных из-за нечеткого нечеткого потока управления ...; o)

Только что понял, что пропустил детали.Кнопка, о которой вы говорите, должна быть на самой форме, а не на каком-либо пользовательском элементе управления, при условии, что вы не хотите, чтобы она просто обновлялась в реальном времени с использованием событий, описанных выше.При нажатии кнопки форма должна пройти проверку StoreUserControl.SelectedStoreID() и передать результат в EmployeeUserControl.showEmployeesFromStore()

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