я должен отправить контроль формы победы как параметр? - PullRequest
0 голосов
/ 10 февраля 2011

Winform forms.cs содержит вид сетки.Это gridview (много столбцов) заполняется элементами xml и его атрибутами.

Другой класс " XMLReader.cs ", который читает файл XML и возвращает

List <someclassObjects>

Теперь я отправляю gridview как параметр из form.cs другому классу " UpdateAppUI.cs ", который получает Gridview в качестве параметра и обновляет его.

Вопрос: Есть ли проблемы с передачей элементов управления в качестве параметра?Опытные специалисты говорят, что не передают элементы управления.

Тогда как я могу получить доступ к элементам управления формы для других классов?

Какое решение для вышеуказанной ситуации?

Ответы [ 2 ]

1 голос
/ 10 февраля 2011

почему вы хотите передать вид сетки?

Если вы просто хотите обновить его в файле UpdateAppUI.cs, тогда передайте данные из gridview в таблицу данных. А из datatable вы можете обновить базу данных из класса.

Нет необходимости проходить контроль.

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

0 голосов
/ 10 февраля 2011

Я думаю, что те разработчики обращаются к тому, чтобы не делать ваш пользовательский интерфейс невосприимчивым. Возможно, вы захотите взглянуть на свой дизайн (читай: концептуальная модель / схема проектирования), прежде чем вы решите, как реализовать эту функцию.

На MSDN есть статья, посвященная "Предоставьте приложениям .NET быстрый и отзывчивый пользовательский интерфейс с несколькими потоками" .

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

Также помните, что ваши элементы управления Objects и когда Objects передаются как параметры, они отправляются как reference types, поэтому еще одна «опасность» заключается в том, что ваш метод может сделать что-то вредоносное для вашего элемента управления .

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

...