Привязка заголовка вкладки Silverlight 4 TabControl MVVM - PullRequest
2 голосов
/ 15 сентября 2010

В приложении silverlight я динамически создаю элементы вкладки в коде (код MainView):

TabItem tab = new TabItem();
CustomerView view = new CustomerView();
view.DataContext = customerViewModel; //or tab.DataContext = customerViewModel;??
tab.Content = view;
DataTemplate template = this.Resources["CustomTabItemHeader"] as DataTemplate;
tab.HeaderTemplate = template;
tabControl.Items.Add(tab);

CustomTabItemHeader (в MainView.xaml) выглядит следующим образом:

<UserControl.Resources>
    <DataTemplate x:Key="CustomTabItemHeader">
        <TextBlock Text="{Binding Path=DisplayName}"/>
    </DataTemplate>
</UserControl.Resources>

CustomerViewModel имеетСвойство DisplayName и реализует интерфейс INotifyPropertyChanged.Но DisplayName не отображается в заголовке вкладки.Может кто-нибудь объяснить мне, почему?

1 Ответ

1 голос
/ 15 сентября 2010

Я по глупости предположил, что текстовый блок в шаблоне заголовка TabItem изучит текстовый текст вкладки, чтобы получить его текстовое значение, а это не так. Поэтому мне пришлось сделать следующее:

tab.Header = customerViewModel; 
...