Winforms .net 2.0: привязка текстового поля к родительскому свойству - PullRequest
0 голосов
/ 17 июня 2009

У меня есть строго типизированный набор данных, с двумя таблицами данных: Родитель и ребенок, с отношением, связывающим их так, как вы ожидаете (например, parent-has-many-children).

В моей форме Детальности я показываю много информации о текущем дочернем элементе, с привязкой звонков, например:

me.txtBirthDate.DataBindings.add(New Windows.Forms.Binding("Text", MyDataset, "Child.Birthdate"))

Но я также хотел бы показать некоторую информацию о родителе ребенка - скажем, имя родителя. Я пробовал:

me.txtParentName.DataBindings.add(New Windows.Forms.Binding("Text", MyDataset, "Child.Parent.Name"))

и

me.txtParentName.DataBindings.add(New Windows.Forms.Binding("Text", MyDataset, "Parent.Name"))

Но оба они приводят к пустому текстовому полю.

Конечно, я могу поместить родительские свойства непосредственно в Child DataTable и заполнить их, используя результаты объединения базовых таблиц БД, но я бы хотел этого избежать, если это возможно (мое реальное приложение включает только мало родителей каждый со многими детьми, и я бы не хотел, чтобы в них было столько ненужных данных).

Это возможно?

Большое спасибо!

-Roy

1 Ответ

0 голосов
/ 17 июня 2009

Я обычно использую BindingSource между DataSet и элементами управления. При использовании этого подхода, если у меня есть элементы управления, которые я хочу привязать к связанной строке из другой таблицы, я создаю новый BindingSource, который указывает на связанную строку (его свойство DataSource является исходным BindingSource, его DataMember является родительской таблицей), а затем связать другие элементы управления со вторым BindingSource.

Я обычно делаю все это в представлении конструктора, которое просто создает эти BindingSource объекты по мере продвижения.

Надеюсь, это поможет.

...