Привязка основных данных пользовательских объектов VB.NET - PullRequest
0 голосов
/ 08 марта 2010

С тех пор, как несколько лет назад я начал использовать VB.NET , я стал постепенно знакомиться с использованием функций привязки данных в .NET, однако я часто нахожу себя изумленным из-за его поведения и вместо того, чтобы находить правильное как это должно работать, я нахожу грязную работу вокруг, чтобы удовлетворить свои потребности и продолжить.

Излишне говорить, что мои проблемы продолжают возникать.

Я использую пользовательские объекты в качестве источников данных для элементов управления и часто целых форм. Я расстраиваюсь, когда разделяю бизнес-логику и графический интерфейс. (Это может быть совершенно новый вопрос.) Поэтому для многих объектов я генерирую форму, которая имеет DataBindingSource для объекта. Когда я создаю каждый из них с помощью нового конструктора, я явно передаю ему объект, к которому он должен быть привязан, а затем устанавливаю этот переданный объект как DataSource из BindingSource. (Это глоток!)

Теперь мастер-объект (скажем, привязанный к каждой форме) часто содержит список объектов, которые я хотел бы отобразить в DataGridView. Я (иногда) создаю и изменяю эти дочерние объекты в их собственной форме (снова создавая привязку данных таким же образом, как и в главной форме), но когда я добавляю их в список в главном объекте, DataGridView не будет обновляться с новыми товар.

Так что мой вопрос действительно состоит из нескольких слоев:

  1. Как я могу легко / эффективно / правильно обновить это DataGridView со списком объектов Detail, когда я добавлю их в список главного объекта.

  2. Является ли этот подход к DataBinding хорошим / жизнеспособным.

  3. Какой лучший способ отделить бизнес-логику от графического интерфейса.

1 Ответ

2 голосов
/ 08 марта 2010

1) использовать BindingList . он обрабатывает все обновления gridview для вас. Я использовал это много раз, и мне это нравится. это супер легко и делает то, что вы хотите. http://msdn.microsoft.com/en-us/library/ms132679.aspx

2) да

3) Шаблон Модель-Вид-Презентатор с ViewModel или PresentationModel. в сети есть много полезной информации о Model-View-Presenter. прочитайте это и изучите это хорошо. и, между прочим: вы увидите много информации MVP, связанной с веб-разработкой с помощью веб-форм asp.net ... она работает так же хорошо в разработке WinForms. Я использую MVP в winforms в течение многих лет.

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