Лучший метод для связывания ComboBox - PullRequest
1 голос
/ 16 апреля 2010

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

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

Например.

У меня есть следующие 2 таблицы :

Company {CompanyID, CompanyName, MainContact}
Контакты {ContactID, ContactName}

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

То, как я сейчас это делаю, это привязка ComboBox к набору данных Contacts и ручное обновление поля Company MainContact в коде позади.

Могу ли я в любом случае связать выбранный элемент с полем MainContact компании в XAML, а элементы - с ContactName и устранить код позади?

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

Возможно ли это вообще?

1 Ответ

2 голосов
/ 16 апреля 2010

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

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

<ComboBox ItemsSource="{Binding Contacts}" DisplayMemberPath="ContactName" 
    SelectedValue="{Binding Path=Company.MainContact, 
    UpdateSourceTrigger=PropertyChanged}" 
    SelectedValuePath="ContactName"/>

Как видите, ресурс ItemsSource привязан к вашему набору данных Contacts, но когда пользователь выбирает элемент из списка, он обновит поле Company.MainContact с выбранным контактом.

...