在 Silverlight 和 TextBlock 中绑定时的 string.format 的一种
本文关键字:format 一种 string TextBlock 绑定 定时 Silverlight | 更新日期: 2023-09-27 18:33:29
我有这样的XAML。基本上,它连接了绑定到不同属性的多个字符串。假设出于某种原因,我不想在 VM 上公开另一个属性以将其作为单个属性。
是否有任何其他 XAML 绑定方法可以使其更紧凑?
<StackPanel Grid.Column="1" Orientation="Horizontal">
<TextBlock Text="Added by " FontSize="10" Foreground="#2C2C2C" />
<TextBlock Text="{Binding Document.MEMUser.UserName}" Foreground="#2C2C2C" FontSize="10" />
<TextBlock Text=" on " FontSize="10" Foreground="#2C2C2C"/>
<TextBlock Text="{Binding CreatedOn, Converter={StaticResource DateTimeToStringConverter}}" Foreground="#2C2C2C" FontSize="10" />
<!--BIND COMMANDS TO PARENT ViewModel to process operations-->
<Button Content="Delete" Command="{Binding DataContext.DeleteCommand, ElementName=LayoutRoot}" CommandParameter="{Binding}" />
<Button Content="Download" Command="{Binding DataContext.DownloadCommand, ElementName=LayoutRoot}" CommandParameter="{Binding}" />
</StackPanel>
您可以使用
转换器连接所有字符串,您需要传递一些包含所有所需属性的对象实例。
旁注:您可以在 StackPanel 中将 fontsize 和前景设置为 TextBlock.FontSize 和 TextBlock.Foreground
您可以在TextBlock
中使用<Run>
元素:
<StackPanel Grid.Column="1" Orientation="Horizontal">
<TextBlock FontSize="10" Foreground="#2C2C2C">
<Run Text="Added by " />
<Run Text="{Binding Document.MEMUser.UserName}" />
<Run Text=" on " />
<Run Text="{Binding CreatedOn, Converter={StaticResource DateTimeToStringConverter}}" />
</TextBlock>
<!--BIND COMMANDS TO PARENT ViewModel to process operations-->
<Button Content="Delete" Command="{Binding DataContext.DeleteCommand, ElementName=LayoutRoot}" CommandParameter="{Binding}" />
<Button Content="Download" Command="{Binding DataContext.DownloadCommand, ElementName=LayoutRoot}" CommandParameter="{Binding}" />
</StackPanel>