У меня есть шаблон заголовка сводки, так что на странице сводки есть заголовок и подзаголовок.Я хочу установить оба с помощью кода.
Я строю XAML в Blend и без привязки кода, он отображается так, что часть работает.
Однако моя привязка не работает.Он либо не будет создаваться, потому что объект не имеет DataContext, либо объект не существует в текущем контексте или выполняет сборку, но не будет отображаться.Когда он не отображается, я предполагаю, что связываюсь с неправильным объектом XAML. Каждый объект назван только так, чтобы я мог найти нужный объект для привязки.
Содержащий класс для связанного кода Title и Subtitle выглядит следующим образом:
public class PivotTitle
{
public string Title = "";
public string Subtitle = "";
}
Мой вопрос: как правильно связать TitleTemplate, чтобы свойства TextBlocks могли бытьустановить в коде?
Вот XAML
<controls:Pivot.TitleTemplate >
<DataTemplate x:Name="PivotTitleTemplateDataTemplate" >
<StackPanel x:Name="MyPivotTitle" DataContext="{Binding}" >
<TextBlock x:Name="Title"
Text="{Binding Title}"
FontSize="20"
TextWrapping="Wrap"/>
<TextBlock x:Name="Subtitle"
Text="{Binding Subtitle}"
Foreground="Gray"
TextWrapping="Wrap"/>
</StackPanel>
</DataTemplate>
</controls:Pivot.TitleTemplate>
Название и субтитры зависят от страницы, с которой вы переходили.Код выглядит следующим образом:
// определен в верхней части класса страницы public PivotTitle _PivotTitle = new PivotTitle ();
protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e)
{
base.OnNavigatedTo(e);
string queryStringDeploymentName = "";
this.NavigationContext.QueryString.ContainsKey("DeploymentName"))
_PivotTitle.Title = SelectedDeployment.DeploymentName;
_PivotTitle.Subtitle = App.ViewModel.AppSettings.UpdatedText;
MyPivotTitle.DataContext = _PivotTitle;
}
Этот конкретный пример не будет создан с этой ошибкой:имя «MyPivotTitle» не существует в текущем контексте.Привязка в окне списка сводной страницы работает правильно.
Я считаю, что мой код и общий XAML верны.Я думаю, что связывание DataContext неправильно.
Спасибо за любую помощь.