我有以下datatemplate
<DataTemplate x:Key="SectionHeader">
<Border CornerRadius="5">
<Border.Background>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="#FF1E5270" Offset="1"/>
<GradientStop Color="#FF3E7595"/>
</LinearGradientBrush>
</Border.Background>
<TextBlock Text="{Binding}" FontSize="14" Foreground="White" Padding="0,5" HorizontalAlignment="Center" FontWeight="Bold" />
</Border>
</DataTemplate>
我可以按如下方式使用
<ContentControl Content="Summary" ContentTemplate="{StaticResource SectionHeader}" />
这很好用。但是,当我尝试执行以下操作时
<ContentControl Content="{Binding SelectedOrder}" ContentStringFormat="Details for Order \{0\}" ContentTemplate="{StaticResource SectionHeader}" />
我没有得到完整的字符串只有订单号。 有没有办法使用单个数据模板来完成这项工作,还是需要创建第二个数据模板?
答案 0 :(得分:0)
请参阅MSDN documentation on ContentControl.ContentStringFormat:
如果您设置
ContentTemplate
的{{1}}或ContentTemplateSelector
属性,则会忽略ContentControl
属性。
您应该向ContentStringFormat
添加ContentStringFormat
,或者创建一个简单的StringFormat
并设置绑定StringFormatConverter : IValueConverter
和{{1>,而不是依赖于Converter
如果ConverterParameter
不起作用(它也有非明显的限制 - 只有在目标属性类型为Binding.StringFormat
时才使用它)。
例如:
String