2012-02-24 191 views
0

我有一個小問題。 我有一個數據模板那樣:在頁面之間傳遞數據wp7

<phone:PhoneApplicationPage.Resources> 
    <DataTemplate x:Key="DangersItemTemplate"> 
     <Grid Height="102" Width="447" Tap="Grid_Tap"> 
      <Image Name="image" Source="{Binding Image}" HorizontalAlignment="Left" Width="90" /> 
      <TextBlock Name="text" Text="{Binding Nom}" TextWrapping="Wrap" Margin="102,16,16,22"/> 
     </Grid> 
    </DataTemplate> 
</phone:PhoneApplicationPage.Resources> 

我想使用文本鎖控制在CSHARP代碼Text屬性傳遞給第二個XAML頁面,但我不能找到控制的名字,它無法訪問。

有什麼想法?

回答

0

我只是使用VB.Net,但我相信你可以轉換。 只需在應用程序中使用任何共享變量即可。 在這裏,你可以看到它在源碼例如:

http://www.activevb.de/rubriken/kolumne/kol_30/res/nachtscanner.zip

在應用程序類使用Public Shared MyText As String 。這可以讓你無處不在。 您也可以使用INotifyPropertyChanged來爲該共享屬性進行綁定。

或者,您可以使用導航查詢。在這裏閱讀更多:

How can I pass query string variables with NavigationService.Navigate?

0

你綁定TextBlock的文本,所以你必須在你的DataContext值。我會將此值添加到Querystirng並導航到頁面。

var text = ((Whatever) DataContext).Nom; 
string page2Uri = string.Foramt("/PAge2.xaml?Nom={0}", text); 
NavigationService.Navigate(new Uri(page2Uri, UriKind.Relative)); 

然後獲取數據了,你可以在頁面中使用的OnNavigatedTo方法查詢字符串,然後檢查this.NavigationContext.QueryString [「NOM」]

或者察看到的東西就像MVVM模式一樣。