StringFormat和带标签的多重绑定

我想使用StringFormat来做这样的事情:

<Label x:Name="myLabel"> <Label.Content> <Multibinding StringFormat="{}{0} - {1}"> <Binding Path="Lib1" /> <Binding Path="Lib2" /> </MultiBinding> </Label.Content> </Label> 

但是,这是行不通的,我得到这个错误,而不是:

MultiBinding失败,因为它没有有效的转换器。 MultiBindingExpression:目标元素是'Label'(Name ='myLabel'); 目标属性是“内容”(types“对象”)

有什么办法可以使这个代码工作?

3 Solutions collect form web for “StringFormat和带标签的多重绑定”

你不能绑定这个,因为你试图将一个string绑定到一个不能工作的对象,因为StringFormat要求它的目标是一个stringtypes。 您可以通过使用TextBlock(具有Text属性)或将Textblock作为Label的子项来解决此问题:

 <Label x:Name="myLabel"> <Label.Content> <TextBlock> <TextBlock.Text> <MultiBinding StringFormat="{}{0} - {1}"> <Binding Path="Lib1" /> <Binding Path="Lib2" /> </MultiBinding> </TextBlock.Text> </TextBlock> </Label.Content> </Label> 

对于那些想知道的你也可以留下来自<Label.Content> Burke的答案的<Label.Content>标签。 这节省了另外两行代码。

 <Label x:Name="myLabel"> <TextBlock> <TextBlock.Text> <MultiBinding StringFormat="{}{0} - {1}"> <Binding Path="Lib1" /> <Binding Path="Lib2" /> </MultiBinding> </TextBlock.Text> </TextBlock> </Label> 
 <Label> <AccessText> <MultiBinding StringFormat="{x:Static properties:Resources.MyText}"> <Binding Path="MyObj.MyProp" Mode="OneTime"/> </MultiBinding> </AccessText> </Label> 

其中Resources.MyText可以容纳任何类似“Fox跳过{0}”。

  • 如何设置DataGrid的行背景,基于使用数据绑定的属性值
  • 如何在代码中设置绑定?
  • XAML中的#region
  • SelectedItem,SelectedValue和SelectedValuePath之间的差异
  • 在TextBlock中使用绑定对文本进行硬编码
  • 如何在XAML页面之间传递值(参数)?
  • 在Silverlight / WPF中将元素转发(Z索引)
  • 神秘的“DataGrid的WinRT端口中没有足够的配额可用于处理此命令”
  • 从XAML调用参数化的构造函数
  • WPF:什么是App.xaml的目的?
  • 如何使XAML DataGridColumns填充整个DataGrid?