Я пытаюсь слегка адаптировать пример приложения в стиле Metro в Windows, привязав текст заголовка к свойству, определенному в коде, но не могу заставить его работать.Читая сообщение в блоге под названием Привязка из XAML к свойству, определенному в выделенном коде , я пробую «Решение 1».
Вот мой исходный код XAML (упрощенно):
<UserControl x:Class="... .MainPage" x:Name="UserControlSelf"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
d:DesignHeight="768" d:DesignWidth="1366">
<Grid x:Name="LayoutRoot" Style="{StaticResource LayoutRootGridStyle}">
<Grid.RowDefinitions>
<RowDefinition Height="140"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Grid x:Name="TitlePanel">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Button x:Name="BackButton" Click="BackButton_Click" Style="{StaticResource BackButtonStyle}"/>
<TextBlock x:Name="PageTitle" Text="{Binding ElementName=UserControlSelf, Path=Title}" Style="{StaticResource TitleStyle}" Grid.Column="1"/>
</Grid>
</Grid>
</UserControl>
А вот мой код (в упрощенном виде):
public partial class MainPage
{
private string _title;
public MainPage()
{
_title = "Test";
InitializeComponent();
}
public string Title
{
get
{
return _title;
}
}
//...
}
Я установил точку останова на строке return _title;
в получателе свойства Title
.Когда я отлаживаю приложение, я вижу кнопку «Назад», но элемент управления текстового блока заголовка пуст (без текста) и точка останова не срабатывает:
![Screenshot of the modified Metro-style app running, showing the back button, but no title](https://i.stack.imgur.com/VDj4e.png)
Я установил точку остановав автоматически сгенерированном коде C # для файла XAML и проверил, что UserControlSelf
идентичен this
в InitializeComponent()
.
Как связать Text
элемента управления текстового блока заголовка с Title
свойство определено в code-behind?