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}”。

  • x:在xaml中的含义
  • 将WPF(XAML)控件转换为XPS文档
  • WPFcheckbox绑定
  • 如何在XAML中格式化TimeSpan
  • 如何在WPF选项卡控件中创build梯形选项卡
  • 有没有办法在WPF中使用数据模板inheritance?
  • 神秘的“DataGrid的WinRT端口中没有足够的配额可用于处理此命令”
  • 图像UriSource和数据绑定
  • alignmentWPF中堆栈面板左侧和右侧的控件
  • 如何在XAML中围绕控制中心旋转
  • OneWayToSource从XAML中的readonly属性绑定