我目前正在使用 TabControl 开发应用程序,并且每个选项卡都有一个ViewModel,它继承自ITabViewModel
,它有两个属性:HeaderText
和{{1 }}。我希望从每个ViewModel设置这些。因此,我尝试使用HeaderImage
样式,但这不起作用。谁能告诉我怎么能让它起作用呢?
HeaderTemplate
答案 0 :(得分:0)
只需在ItemTemplate部分
下定义DataTemplate即可 <TabControl>
<TabControl.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
等等你的绑定
ItemTemplate是用于格式化ItemsSource中每个项目以创建标题
的模板
答案 1 :(得分:0)
我认为至少有两种选择。
首先(我认为ViewModelStart
和ViewModelStartupManager
是属性):
<TabItem Header="{Binding ViewModelStart}">
<TabItem Header="{Binding ViewModelStartupManager}">
第二次,使用ItemsSource
并在ViewModel中的某个集合中定义标签。
视图模型:
public ObservableCollection<ITabViewModel> Tabs{ get; set; }
XAML,移除您的TabItem's
并将其添加到上方的媒体资源中。同时将以下属性添加到TabControl
:
ItemsSource="{Binding Tabs}"
答案 2 :(得分:0)
您需要为Header
设置TabItem
的{{1}}属性才能应用:
HeaderTemplate
这有效:
<TabItem DataContext="{Binding ViewModelStart}" Header="{Binding}">
</TabItem>
<TabItem DataContext="{Binding ViewModelStartupManager}" Header="{Binding}">
</TabItem>