如何在XAML Setter Value中格式化字符串?

Edw*_*uay 2 data-binding xaml

我已经学会了如何在标签的content属性中格式化字符串,如下所示:

<Label Content="{Binding ElementName=theSlider, Path=Value}" 
   ContentStringFormat="The font size is {0}."/>
Run Code Online (Sandbox Code Playgroud)

我想在Setter中做同样的事情但是"ValueStringFormat"不存在,在这里做我想要完成的事情的正确语法是什么:

<DataTrigger Binding="{Binding Path=Kind}" Value="Task">
    <Setter TargetName="TheTitle" Property="Text" 
       Value="{Binding Title}" 
       ValueStringFormat="Your title was: {0}"/>
</DataTrigger>
Run Code Online (Sandbox Code Playgroud)

Mat*_*ton 6

你能简单地使用Binding本身的StringFormat属性吗?

<DataTrigger Binding="{Binding Path=Kind}" Value="Task">
    <Setter TargetName="TheTitle" Property="Text" 
        Value="{Binding Title,StringFormat='Your title was: {}{0}'}" 
        />
</DataTrigger>
Run Code Online (Sandbox Code Playgroud)

  • +1,但{0}是否不应该用2个大括号-{}进行转义? (2认同)
  • 原始编辑是错误的。{}的位置错误。除非它在字符串的开头,而不是在{0}之前,否则它不起作用 (2认同)