.NET UWP NavigationView.HeaderTemplate TextBlock устанавливается со страницы во фрейме - PullRequest
0 голосов
/ 03 июля 2018

У меня есть приложение UWP с фрагментом для отображения страниц во фрейме. MainPage:

    <NavigationView.HeaderTemplate>
        <DataTemplate>
            <Grid Margin="24,10,0,0">
                <TextBlock Style="{StaticResource TitleTextBlockStyle}"
                        Name="tbTitleTextBlock"
                       FontSize="28"
                       VerticalAlignment="Center"
                       Text="Welcome"/>
            </Grid>
        </DataTemplate>
    </NavigationView.HeaderTemplate>

    <Frame x:Name="ContentFrame" Margin="24">
        <Frame.ContentTransitions>
            <TransitionCollection>
                <NavigationThemeTransition/>
            </TransitionCollection>
        </Frame.ContentTransitions>
    </Frame>

Как изменить текст Добро пожаловать в tbTitleTextBlock со страницы в фрейме? Спасибо

1 Ответ

0 голосов
/ 05 июля 2018

Как изменить текст Welcome в tbTitleTextBlock со страницы в фрейме? Спасибо

DataContext в tbTitleTextBlock совпадает с заголовком NavigationView. Таким образом, вы можете использовать Text="{Binding}" для получения содержимого родительского DataContext. И когда вы изменяете свойство заголовка NavigationView, tbTitleTextBlock автоматически изменится.

<NavigationView.HeaderTemplate>
    <DataTemplate>
        <Grid Margin="24,10,0,0">
            <TextBlock Style="{StaticResource TitleTextBlockStyle}"
            Name="tbTitleTextBlock"
            FontSize="28"
            VerticalAlignment="Center"
            Text="{Binding}"/>
        </Grid>
    </DataTemplate>
</NavigationView.HeaderTemplate>

Использование

 private void NavigationView_SelectionChanged(NavigationView sender, NavigationViewSelectionChangedEventArgs args)
 {
     if (args.IsSettingsSelected)
     {
         contentFrame.Navigate(typeof(SampleSettingsPage));
     }
     else
     {
         var selectedItem = (NavigationViewItem)args.SelectedItem;
         string pageName = "AppUIBasics.SamplePages." + ((string) selectedItem.Tag);
         sender.Header = pageName;
         Type pageType = Type.GetType(pageName);
         contentFrame.Navigate(pageType);
     }
 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...