如何格式化XAML中使用绑定的字符串?

时间:2012-09-01 15:27:33

标签: wpf xaml winrt-xaml

在WPF中,我可以这样做:

<TextBlock Text="{Binding Products.Count, StringFormat='{0} Products'}"

Windows 8 / WinRT中的等价物是什么,因为不再支持此语法?

2 个答案:

答案 0 :(得分:8)

您可以使用:

<TextBlock>
    <Run Text="{Binding Path=Products.Count}" />
    <Run Text=" Products" />
</TextBlock>

答案 1 :(得分:3)

根据MSDN上的文档,此功能(例如Binding class上的StringFormat)在WinRT中不存在。

ViewModel上的格式设置

public class MyViewModel
{
    public IList<Product> Products { get; set; }

    public string ProductsText 
    { 
        get 
        { 
            return string.Format("{0} Products", Products.Count); 
        } 
    }
}

请注意,您可以挂钩以跟踪Products集合中的更改,并通知ProductsText已更改的属性。

并绑定到格式化的属性:

<TextBlock Text="{Binding ProductsText}" />