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

Rob*_*der 7 wpf xaml winrt-xaml

在WPF中,我可以这样做:

<TextBlock Text="{Binding Products.Count, StringFormat='{0} Products'}"
Run Code Online (Sandbox Code Playgroud)

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

Jak*_*mpl 8

你可以用这个:

<TextBlock>
    <Run Text="{Binding Path=Products.Count}" />
    <Run Text=" Products" />
</TextBlock>
Run Code Online (Sandbox Code Playgroud)


nem*_*esv 3

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

所以在你的 ViewModel 上进行格式化

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

    public string ProductsText 
    { 
        get 
        { 
            return string.Format("{0} Products", Products.Count); 
        } 
    }
}
Run Code Online (Sandbox Code Playgroud)

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

并绑定到格式化属性:

<TextBlock Text="{Binding ProductsText}" />
Run Code Online (Sandbox Code Playgroud)