2012-02-24 97 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模式一样。