Silverlight 4 TabControl MVVM选项卡标题绑定

时间:2010-09-15 03:51:30

标签: silverlight mvvm tabcontrol

在silverlight app中,我在代码中动态创建标签项(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 个答案:

答案 0 :(得分:1)

我愚蠢地认为TabItem标题模板中的文本块会查看tab的datacontext以获取其文本值,但实际情况并非如此。所以我必须做以下事情:

tab.Header = customerViewModel; 
相关问题