wpf - 使用字符串文字在标签上绑定stringformat

TWo*_*ood 23 wpf xaml string-formatting

我已经将滑块控件的工具提示绑定到它的Value属性,并且我正在尝试使用StringFormat使其显示"当前值{0}为10",其中{0}是Value属性.下面是我尝试解决这个问题时尝试过的各种事情之一.

<Slider.ToolTip>
  <Label>
    <Label.Content>
      <Binding StringFormat="Current Value {0} of 10"
               ElementName="DebugLevelSlider"
               Path="Value" />
    </Label.Content>
  </Label>
</Slider.ToolTip>
Run Code Online (Sandbox Code Playgroud)

我有问题在线查找如何使用字符串文字的字符串格式,如上面的我.我看到很多字符串格式的日期/时间/货币格式转换.我认为我有一种方法可以通过多重绑定来实现这一点,但它似乎只是需要额外的工作量.我希望对于字符串文字格式我仍然不必编写自定义转换器.

在我的应用程序中,我发现自己在项目旁边使用了很多额外的标签,因此在stringformat中理解将有希望让我消除一些不必要的标签.

Gui*_*ino 94

Label.Content是对象所以你不能Binding.StringFormat在那里使用,因为绑定的目标类型必须是string为了它的工作.

两种解决方法是:使用TextBlock而不是Label绑定Text属性.

使用Label.ContentStringFormat

<Label ContentStringFormat="Current Value {0} of 10" Content={Binding ...} />
Run Code Online (Sandbox Code Playgroud)

你只需要逃避string{}如果你的第一个字符是{


a_h*_*din 32

对于ToolTip,您可以检查出使用StringFormat的WPF绑定不适用于ToolTips.

就上面指定的StringFormat而言,您必须转义字符串.

StringFormat="{}Current Value {0} of 10"
Run Code Online (Sandbox Code Playgroud)

这是一堆StringFormat示例. http://blogs.msdn.com/b/llobo/archive/2008/05/19/wpf-3-5-sp1-feature-stringformat.aspx