Data binding 如何格式化XAML Setter值中的字符串?

Data binding 如何格式化XAML Setter值中的字符串?,data-binding,xaml,Data Binding,Xaml,我学习了如何格式化标签内容属性中的字符串,如下所示: <Label Content="{Binding ElementName=theSlider, Path=Value}" ContentStringFormat="The font size is {0}."/> 我想在Setter中做同样的事情,但“ValueStringFormat”不存在,我想在这里实现的正确语法是什么: <DataTrigger Binding="{Binding Path=Kind}"

我学习了如何格式化标签内容属性中的字符串,如下所示:

<Label Content="{Binding ElementName=theSlider, Path=Value}" 
   ContentStringFormat="The font size is {0}."/>

我想在Setter中做同样的事情,但“ValueStringFormat”不存在,我想在这里实现的正确语法是什么:

<DataTrigger Binding="{Binding Path=Kind}" Value="Task">
    <Setter TargetName="TheTitle" Property="Text" 
       Value="{Binding Title}" 
       ValueStringFormat="Your title was: {0}"/>
</DataTrigger>

我无法测试此功能,但希望它能正常工作:

...
xmlns:local="clr-namespace:ValueConverter"
...

<Window.Resources>
   <local:MyTextConverter x:Key="MyTextConverter" />
</Window.Resources>

...
<DataTrigger Value="Task">
     <DataTrigger.Binding>
        <Binding Converter="{StaticResource MyTextConverter}"
            Path="Kind" />
     </DataTrigger.Binding>
     <Setter TargetName="TheTitle" Property="Text"/>
</DataTrigger>

您可以简单地使用绑定本身的StringFormat属性吗

<DataTrigger Binding="{Binding Path=Kind}" Value="Task">
    <Setter TargetName="TheTitle" Property="Text" 
        Value="{Binding Title,StringFormat='Your title was: {}{0}'}" 
        />
</DataTrigger>


这是可行的,但是你剥夺了设计师设置格式字符串的能力。原来的编辑是错误的。{}放错地方了。除非它位于字符串的开头,而不是直接在{0}之前,否则它不起作用
<DataTrigger Binding="{Binding Path=Kind}" Value="Task">
    <Setter TargetName="TheTitle" Property="Text" 
        Value="{Binding Title,StringFormat='Your title was: {}{0}'}" 
        />
</DataTrigger>