【问题标题】:How can I concat hard-coded text with a binding text in a label? [duplicate]如何将硬编码文本与标签中的绑定文本连接起来? [复制]
【发布时间】:2019-04-02 06:46:54
【问题描述】:

我想使用一个列表框来制作一个包含 3 个部分的标签。第一部分是硬编码文本,第二部分是视图模型中绑定属性的值,最后一部分也是硬编码文本。

这个想法是这样的:

<ListBox x:Name="list1" ItemsSource="{Binding IvasConImportes}"
    BorderBrush="Transparent"
    BorderThickness="0"
    Background="Transparent">
    <ListBox.ItemTemplate>
        <DataTemplate>
            <StackPanel Orientation="Horizontal">
                <Label Name="lblIvaParte01" Content="TAX " HorizontalAlignment="Left" HorizontalContentAlignment="Right" Width="6.4cm" Margin="0,0,0,0" Padding="0,0,0,0" VerticalAlignment="Top"/>
                <Label Name="lblIvaParte02" Content="{Binding Item1}" HorizontalAlignment="Left" HorizontalContentAlignment="Left" Width="6.4cm" Margin="0,0,0,0" Padding="0,0,0,0" VerticalAlignment="Top"/>
                <Label Name="lblIvaParte03" Content="%" HorizontalAlignment="Left" HorizontalContentAlignment="Left" Width="6.4cm" Margin="0,0,0,0" Padding="0,0,0,0" VerticalAlignment="Top"/>
            </StackPanel>
        </DataTemplate>
    </ListBox.ItemTemplate>
</ListBox>

问题在于,以这种方式对齐文本有点困难,而且我猜必须有可能只用一个标签来完成所有这些,但我不知道绑定中的语法标签的内容来做到这一点。

【问题讨论】:

    标签: wpf


    【解决方案1】:

    使用一个TextBlock,其中包含三个Run 元素。每次运行都可以将其文本属性设置为常量或数据绑定。

    <TextBlock>
        <Run Text="TAX" />
        <Run Text="{Binding Item1}" />
        <Run Text="%"/>
    </TextBlock>
    

    【讨论】:

    • 注意Run默认绑定TwoWay。如果Item1 是一个只能获取的属性,你会得到一个异常。
    • 谢谢。是的,该属性是只读的,但我可以将绑定模式更改为一种方式并解决问题。感谢您的提示。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-10-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-09
    • 1970-01-01
    • 2017-05-07
    相关资源
    最近更新 更多