Silverlight Deep Linking

Von Max Knor Autor Feed 19. July 2009 23:59

Für die Beta von Silverlight wurde hier bereits ein Beitrag verfasst:

http://blogs.msdn.com/msdnat/archive/2009/03/25/silverlight-3-news-teil-2-4-deep-linking-und-navigation.aspx

Generell gibt es zwei Möglichkeiten zu navigieren:

Mittels Hyperlinkbutton

<HyperlinkButton Content="about" 
NavigateUri="/About.xaml" TargetName="ContentFrame" />

Oder manuell

this.ContentFrame.Navigate(new Uri("/Home.xaml", UriKind.Relative));

Will man das Format der URL selber bestimmen, so kann man einen UriMapper dazu einsetzen:

<navigation:Frame>

    ...

    <navigation:Frame.UriMapper>

        <uriMapper:UriMapper>

            <uriMapper:UriMapping Uri="" MappedUri="/Views/Home.xaml"/> // Default

            <uriMapper:UriMapping Uri="/{pageName}" MappedUri="/Views/{pageName}.xaml"/>

        </uriMapper:UriMapper>

    </navigation:Frame.UriMapper>

Nun wird z.B. die URL http://silverlight/Default.aspx#/About automatisch auf /Views/About.xaml gemappt, http://silverlight/Default.aspx hingegen auf Home.xaml.

Für interaktive Anwendungen ist es übrigens auch möglich, Url Parameter (QueryStrings) an Silverlight zu übergeben.

So kann man z.B. eine generische Detailseite für Informationen bauen, welche Infos dargestellt werden sollen, wird per Parameter übergeben.

Die Url könnte zum Beispiel http://localhost:61525/Default.aspx#/Details?id=1234 lauten.

In der Seite hat man über die NavigationContext Eigenschaft Zugriff auf den QueryString:

protected override void OnNavigatedTo(NavigationEventArgs e)
{

    if (this.NavigationContext.QueryString.ContainsKey("id"))
    {

        string id = this.NavigationContext.QueryString["id"];

        // Do something with id

    }

}

Max_Foto3knom

Add comment

  Country flag

biuquote
  • Comment
  • Preview
Loading

Datenschutzhinweis: Sie stimmen durch "Kommentar speichern" der Speicherung Ihrer Angaben durch Microsoft Österreich für die Beantwortung der Anfrage zu. Sie erhalten dadurch keine unerwünschten Werbezusendungen. Ihre Emailadresse wird auf Ihren Wunsch dazu verwendet Sie über neue Kommentare zu informieren.

Microsoft respektiert den Datenschutz. Datenschutz & Cookies

Entwickler Wettbewerbe:

Wettbewerbe

Entwickler Events:

Developer Events

App für Windows 8, Windows Phone oder/und Azure? Diese Events zeigen Dir, wie es geht:

Mehr Information

Aktuelle Downloads

Visual Studio Downloads
 
Windows Azure Free Trial
Instagram
CodeFest.at on Facebook

Datenschutz & Cookies · Nutzungsbedingungen · Impressum · Markenzeichen
© 2013 Microsoft. Alle Rechte vorbehalten · BlogEngine.NET 2.7.0.0 · Diese Website wird für Microsoft von atwork gehostet.
powered by atwork