【发布时间】:2010-10-15 08:41:06
【问题描述】:
我有一个场景,我真的不知道如何将数据绑定到托管在 UserControl 中的控件到多个数据上下文。
我要绑定的数据来自 2 个类
UserInfo, UserExtendedInfo
UserControl 的数据上下文设置为 UserInfo,因此我可以轻松地绑定大多数控件,执行以下操作
<Label Name="LblEmail" Text="{Binding Email}" />
但是我不知道如何轻松地绑定来自 UserExtendedInfo 类的属性。我最初的想法是设置每个想要使用来自 UserExtendedInfo 的数据的控件的数据上下文,这样我就可以做同样的事情。但这似乎很麻烦,因为我必须手动分配每个人。每次 UserControl 变为可见时,必须从数据库中获取 UserExtendedInfo 的数据,以免它不同步。
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
【问题讨论】:
标签: .net wpf data-binding resources