0

Необходимо привязать label из MainWindow и title из страницы. В Content у label написал binding. Указал, что ElementName = MainFrame, но я понимаю, что у MainFrame нет свойства Title, это свойство у страницы, но как мне сказать компилятору, что вот тебе страница и бери тайтл

MainWindow:

<Grid.RowDefinitions>
            <RowDefinition Height="100"/>
            <RowDefinition/>
            <RowDefinition Height="50"/>
        </Grid.RowDefinitions>
        <Grid Grid.Row="0" Background="#6995C2"/>
        <Grid Grid.Row="2" Background="#6995C2"/>
        <Image x:Name="logo" Source="C:\Users\Radiance\Desktop\NBASHKA\Resources\logo.png" Grid.Row="0" HorizontalAlignment="Left" VerticalAlignment="Top" Margin="5" Height="90" Width="90"/>
        <Label x:Name="header" Content="{Binding Title, ElementName=MainFrame}" HorizontalAlignment="Center" VerticalAlignment="Center" Grid.Row="0" FontFamily="Rubik" FontSize="30" Foreground="Black"/>
        <TextBlock Text="FOOTER" HorizontalAlignment="Center" VerticalAlignment="Center" Grid.Row="2" FontFamily="Rubik" FontSize="15"/>
        <Button x:Name="back" Content="BACK" Width="130" Height="30" Background="White" Grid.Row="0" HorizontalAlignment="Right" VerticalAlignment="Top" Margin="5" IsCancel="True" Click="back_Click">
            <Button.Resources>
                <Style TargetType="Border">
                    <Setter Property="CornerRadius" Value="10"/>
                </Style>
            </Button.Resources>
        </Button>
        <Frame x:Name="MainFrame" NavigationUIVisibility="Hidden" Grid.Row="1"/>

Страница MainScreen

Title="MainScreen">

<Grid> <StackPanel HorizontalAlignment="Center" VerticalAlignment="Center" Orientation="Horizontal"> <Button x:Name="visitor" Content="Visitor" Width="130" Height="30" Background="#6995C2" Click="visitor_Click"> <Button.Resources> <Style TargetType="Border"> <Setter Property="CornerRadius" Value="10"/> </Style> </Button.Resources> </Button> <Button x:Name="admin" Content="Admin" Width="130" Height="30" Background="#6995C2" Margin="20,0,0,0" Click="admin_Click"> <Button.Resources> <Style TargetType="Border"> <Setter Property="CornerRadius" Value="10"/> </Style> </Button.Resources> </Button> </StackPanel> </Grid>

gw gw
  • 95
  • 6
  • а что вы пробовали? Меня тоже интересует этот вопрос –  Dec 10 '22 at 13:43
  • Frame не очень подходящий элемент для привязок, там как бы можно, но не стоит. У вас должно быть что-то по типу такого, где вы делаете классы, которые будут содержать в себе информацию о странице, ее заголовок, может описание, ну и др. Дальше создаете под каждую страницу свой вид в виде простого UserControl. Остается в XAML указать какой вид будет использован и под какую страницу, делается это через DataTemplate. Все, делаете свойство, привязываете к нему, готово. Отвыкайте от всех x:Name="...", мой вам совет. – EvgeniyZ Dec 10 '22 at 14:02
  • 1
    Ну а если нужно всеж через фрейм, то подумайте логически, вы титул чего хотите взять, контента, или самого фрейма? Наверно контента, так может Content.Title? – EvgeniyZ Dec 10 '22 at 14:05
  • @EvgeniyZ да, я понимаю, что я не так делаю, но мне именно это надо решить, на счет title, то мне нужен тайтл страницы(фрейма) – gw gw Dec 10 '22 at 15:07
  • @DaLadno пока что я ничего не пробовал, но если найду ответ, то отвечу – gw gw Dec 10 '22 at 15:11
  • @DaLadno наше ответ – gw gw Dec 10 '22 at 15:19

1 Answers1

0
<label Content="{Binding ElementName=MainFrame, Path=Content.Title}"/>

в окне MainWindow, где находится label, прописать данный бинд. Нужно учесть, что Frame находится там же где и label

введите сюда описание изображения

gw gw
  • 95
  • 6