Navigate to an instance of a custom class, instead of a Page. : Page « Windows Presentation Foundation « C# / C Sharp






Navigate to an instance of a custom class, instead of a Page.

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; }
        }
    }
}

   
    
  








Related examples in the same category

1.Page Loaded eventPage Loaded event
2.Remember and navigate through multiple sets of state for a single page instanceRemember and navigate through multiple sets of state for a single page instance
3.Create a button when the page loads.Create a button when the page loads.
4.UI With Page for Dynamic Button contentUI With Page for Dynamic Button content
5.A XAML browser application (XBAP) running in partial trust can safely upload files from a client machine.A XAML browser application (XBAP) running in partial trust can safely upload files from a client machine.