Navigate to an instance of a custom class, instead of a Page.
<Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" x:Class="WpfApplication1.HomePage" xmlns:local="clr-namespace:WpfApplication1" WindowTitle="Page that Navigates to an Object"> <Page.Resources> <DataTemplate DataType="{x:Type local:Person}"> <TextBlock xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"> <TextBlock FontWeight="Bold">Name:</TextBlock> <TextBlock Text="{Binding Path=Name}" /> <LineBreak /> <TextBlock FontWeight="Bold">Favorite Color:</TextBlock> <TextBlock Text="{Binding Path=FavoriteColor}" FontWeight="Bold"> <TextBlock.Background> <SolidColorBrush Color="{Binding Path=FavoriteColor}" /> </TextBlock.Background> </TextBlock> </TextBlock> </DataTemplate> </Page.Resources> <Hyperlink Name="hyperlink" Click="hyperlink_Click">Navigate to Nancy Davolio</Hyperlink> </Page> //File:Window.xaml.vb Imports System.Windows Imports System.Windows.Controls Imports System.Windows.Media Namespace WpfApplication1 Public Partial Class HomePage Inherits Page Public Sub New() InitializeComponent() End Sub Private Sub hyperlink_Click(sender As Object, e As RoutedEventArgs) Dim person As New Person("A", Colors.Yellow) Me.NavigationService.Navigate(person) End Sub End Class Public Class Person Private m_name As String Private m_favoriteColor As Color Public Sub New() End Sub Public Sub New(name As String, favoriteColor As Color) Me.m_name = name Me.m_favoriteColor = favoriteColor End Sub Public Property Name() As String Get Return Me.m_name End Get Set Me.m_name = value End Set End Property Public Property FavoriteColor() As Color Get Return Me.m_favoriteColor End Get Set Me.m_favoriteColor = value End Set End Property End Class End Namespace