Передача данных между страницами wp7 - PullRequest
0 голосов
/ 24 февраля 2012

У меня есть маленький вопрос. У меня есть такой шаблон данных:

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

Я хочу использовать элемент управления Textlock в коде CSharp для передачи свойства Text на вторую страницу xaml, но я не могу найти имя элемента управления, он недоступен.

Есть идеи?

Ответы [ 2 ]

0 голосов
/ 24 февраля 2012

Ваша привязка к тексту текстового блока, так что вы должны иметь значение в вашем текстовом тексте.Я бы добавил это значение в Querystirng и перешел бы на страницу.

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

А затем, чтобы получить данные из строки запроса, вы можете использовать метод OnNavigatedTo на своей странице, а затем проверить это. NavigationContext.QueryString ["nom"]

Или посмотрите что-то вроде шаблона MVVM.

0 голосов
/ 24 февраля 2012

Я просто использую VB.Net, но я уверен, что вы можете конвертировать. Просто используйте любую общую переменную в приложении. Здесь вы можете увидеть это в примере с SourceCode:

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

Просто используйте Public Shared MyText As String в классе приложений. Этот доступ вы можете получить в любом месте. Вы также можете использовать INotifyPropertyChanged для связывания этого общего свойства.

В качестве альтернативы вы можете использовать Навигационный запрос. Подробнее здесь:

Как передать переменные строки запроса с NavigationService.Navigate?

...