Mega Code Archive

 
Categories / C# / WPF
 

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.cs using System.Windows;  using System.Windows.Controls;  using System.Windows.Media; namespace WpfApplication1 {     public partial class HomePage : Page     {         public HomePage()         {             InitializeComponent();         }         void hyperlink_Click(object sender, RoutedEventArgs e)         {             Person person = new Person("A", Colors.Yellow);             this.NavigationService.Navigate(person);         }     }     public class Person     {         string name;         Color favoriteColor;         public Person() { }         public Person(string name, Color favoriteColor)         {             this.name = name;             this.favoriteColor = favoriteColor;         }         public string Name         {             get { return this.name; }             set { this.name = value; }         }         public Color FavoriteColor         {             get { return this.favoriteColor; }             set { this.favoriteColor = value; }         }     } }