У меня есть сценарий, в котором я действительно не знаю, как привязать данные к элементам управления, размещенным в UserControl, к нескольким элементам данных.
Данные, которые я хочу связать, поступают из 2 классов
UserInfo, UserExtendedInfo
Текст данных UserControl установлен на UserInfo, поэтому я могу легко связать большинство элементов управления, выполнив следующие действия:
<Label Name="LblEmail" Text="{Binding Email}" />
Однако я не знаю, как легко связать свойства из класса UserExtendedInfo. Сначала я думал установить текстовый текст каждого элемента управления, который хочет использовать данные из UserExtendedInfo, чтобы я мог сделать то же самое. Но это кажется громоздким, так как я должен был бы вручную назначить каждого из них по отдельности. Данные для UserExtendedInfo должны выбираться из базы данных каждый раз, когда UserControl становится видимым, чтобы он не вышел из синхронизации.
XAML:
<Label Name="LblTest" Text="{Binding Locale}" />
Код позади:
Private Sub UserManager_IsVisibleChanged(ByVal sender As System.Object, ByVal e As System.Windows.DependencyPropertyChangedEventArgs)
If DirectCast(e.NewValue, Boolean) Then
Dim user As UserInfo = DirectCast(DataContext, UserInfo)
If user IsNot Nothing Then
Dim usrExt As UserExtenedInfo = UserController.GetUserExtended(user.userID)
LblTest.DataContext = usrExt
Else
Throw New ArgumentException("UserId doesn't exist or is less than 1")
End If
End If
End Sub