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
Related examples in the same category