相关疑难解决方法(0)

WPF将多个控件绑定到不同的datacontexts

我有一个场景,我真的不知道如何将数据绑定到UserControl托管到多个datacontexts的控件.

我想绑定的数据来自2个类

UserInfo, UserExtendedInfo
Run Code Online (Sandbox Code Playgroud)

UserControl的datacontext设置为UserInfo,因此我可以轻松地绑定大多数控件执行以下操作

<Label Name="LblEmail" Text="{Binding Email}" />
Run Code Online (Sandbox Code Playgroud)

但是我不知道如何轻松地绑定UserExtendedInfo类中的属性.我最初的想法是设置每个控件的datacontext,以便使用UserExtendedInfo中的数据,这样我就可以这样做.但这似乎很麻烦,因为我必须手动分配每个人.每次UserControl变得可见时,必须从数据库中获取UserExtendedInfo的数据,以使其不会失去同步.

XAML:

<Label Name="LblTest" Text="{Binding Locale}" />
Run Code Online (Sandbox Code Playgroud)

代码背后:

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
Run Code Online (Sandbox Code Playgroud)

.net data-binding wpf resources

24
推荐指数
4
解决办法
6万
查看次数

标签 统计

.net ×1

data-binding ×1

resources ×1

wpf ×1