I would maybe think about wrapping your user object in a seperate class then setting the DataContext properties of sub-panels that contain the data.
For example:
public class UserDataContext
{
public UserInfo UserInfo { get; set; }
public UserExtendedInfo UserExtendedInfo { get; set; }
}
Then in your UserControl.xaml:
<!-- Binding for the UserControl should be set in its parent, but for clarity -->
<UserControl DataContext="{Binding UserDataContext}">
<StackPanel>
<Grid DataContext="{Binding UserInfo}">
<TextBlock Text="{Binding Email}" />
</Grid>
<Grid DataContext="{Binding UserExtendedInfo}">
<TextBlock Text="{Binding Locale}" />
<TextBlock Text="{Binding AboutMe}" />
</Grid>
</StackPanel>
</UserControl>
This assumes that your UserInfo class has a property of Email
and
That your UserExtendedInfo class has a property of Locale and AboutMe