Fil*_*dji 44 c# xaml string-formatting multibinding
我想使用StringFormat做这样的事情:
<Label x:Name="myLabel">
<Label.Content>
<Multibinding StringFormat="{}{0} - {1}">
<Binding Path="Lib1" />
<Binding Path="Lib2" />
</MultiBinding>
</Label.Content>
</Label>
Run Code Online (Sandbox Code Playgroud)
但是,它不起作用,我得到了这个错误:
MultiBinding失败,因为它没有有效的Converter.MultiBindingExpression:目标元素是'Label'(Name ='myLabel'); target属性是'Content'(类型'Object')
有没有办法使这个代码工作?
Leo*_*rke 104
你不能绑定它,因为你试图将一个字符串绑定到一个不能工作的对象,因为StringFormat要求它的目标是一个字符串类型.您可以通过使用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>
Run Code Online (Sandbox Code Playgroud)
对于那些想知道的人,您也可以<Label.Content>
从 Leom Burke 的回答中留下标签。这又节省了两行代码。
<Label x:Name="myLabel">
<TextBlock>
<TextBlock.Text>
<MultiBinding StringFormat="{}{0} - {1}">
<Binding Path="Lib1" />
<Binding Path="Lib2" />
</MultiBinding>
</TextBlock.Text>
</TextBlock>
</Label>
Run Code Online (Sandbox Code Playgroud)
小智 5
<Label>
<AccessText>
<MultiBinding StringFormat="{x:Static properties:Resources.MyText}">
<Binding Path="MyObj.MyProp" Mode="OneTime"/>
</MultiBinding>
</AccessText>
</Label>
Run Code Online (Sandbox Code Playgroud)
哪里Resources.MyText
可以容纳诸如“狐狸跳过 {0}”之类的内容。
归档时间: |
|
查看次数: |
27465 次 |
最近记录: |