【发布时间】:2013-07-04 04:17:05
【问题描述】:
我有一个名为 ProductEditView 的用户控件,我将它添加到我的 MainWindow (shell) 的一个区域中。我在 Shell 区域中有一个 TabControl 来显示 ProductEditView,如下所示
<TabControl Name="tabEditProduct"
prism:RegionManager.RegionName="TabContent"
<TabControl.ItemContainerStyle>
<Style TargetType="TabItem">
<Setter Property="HeaderTemplate">
<Setter.Value>
<DataTemplate>
<DockPanel LastChildFill="True" >
<Button Width="16" Height="16" Command="{Binding Path=CloseTabCommand}"
DockPanel.Dock="Right" BorderThickness="0" Padding="0"
BorderBrush="Transparent" Background="Transparent">
<Image Source="Images/close-icon.png" Width="14" Height="14"
HorizontalAlignment="Stretch" Margin="0"/>
</Button>
<TextBlock Text="{Binding ProductName}"
DockPanel.Dock="Left" Margin="0,0,10,0" />
</DockPanel>
</DataTemplate>
</Setter.Value>
</Setter>
</Style>
</TabControl.ItemContainerStyle>
</TabControl>
在 TabItem 的 HeaderTemplate 中,我尝试使用绑定显示来自产品对象的文本。不幸的是绑定不起作用,但我可以将静态文本显示为标题。 是否可以像上面那样使用绑定来显示选项卡项的标题文本?
为了完整起见,我还将视图粘贴到作为 TabItem 加载到 TabControl 区域中的 Edit Product。其绑定运行良好。这是 ProductEditView
<UserControl x:Class="TextExisting.CoreModule.ProductEditView"
....
<Grid HorizontalAlignment="Center" DataContext="{Binding Path=Product}" Grid.Row="0" Grid.Column="0">
....
<TextBlock Text="Id" Grid.Row="0" Grid.Column="0"/>
<TextBox Grid.Row="0" Grid.Column="1"
Text="{Binding Path=Id, NotifyOnValidationError=True, ValidatesOnExceptions=True}" />
<TextBlock Text="Product Name" Grid.Row="1" Grid.Column="0"/>
<TextBox Grid.Row="1" Grid.Column="1"
Text="{Binding Path=ProductName, NotifyOnValidationError=True, ValidatesOnExceptions=True}" />
....
</Grid>
<Button Command="{Binding SaveProductCommand}" Content="Save Product" HorizontalAlignment="Center"/>
</UserControl>
【问题讨论】: