First, add two namespaces.
They are:
- Xmlns: I = "CLR-namespace: system. Windows. interactivity; Assembly = system. Windows. Interactivity"
- Xmlns: EC = "CLR-namespace: Microsoft. expression. interactivity. Core; Assembly = Microsoft. expression. Interactions"
xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity" xmlns:ec="clr-namespace:Microsoft.Expression.Interactivity.Core;assembly=Microsoft.Expression.Interactions"
Then
- <Button content = "button" horizontalalignment = "Left" verticalalignment = "TOP" margin = "170,239," grid. Row = "1">
- <I: interaction. triggers>
- <I: eventtrigger eventname = "click">
- <EC: navigatetopageaction targetpage = "/page1.xaml"/>
- </I: eventtrigger>
- </I: interaction. triggers>
<Button Content="Button" HorizontalAlignment="Left" VerticalAlignment="Top" Margin="170,239,0,0" Grid.Row="1"> <i:Interaction.Triggers> <i:EventTrigger EventName="Click"> <ec:NavigateToPageAction TargetPage="/Page1.xaml"/> </i:EventTrigger> </i:Interaction.Triggers>
</Button>
You can also use navigatetopageaction to pass query strings:
We can use navigationcontext. querystring to read the query string.
- // Navigatetopageaction is also very useful for binding data to navigationcontext. querystring
- <ListBox>
- ...
- <I: interaction. triggers>
- <I: eventtrigger eventname = "selectionchanged">
- <EC: navigatetopageaction>
- <EC: navigatetopageaction. targetpage>
- <Binding Path = "selectedindex" elementname = "mainlistbox"
- Stringformat = "/detailspage. XAML? Selecteditem = {0} "/>
- </EC: navigatetopageaction. targetpage>
- </EC: navigatetopageaction>
- </I: eventtrigger>
- </I: interaction. triggers>
- </ListBox>
Navigatetopageaction opens a new page