7

在 WPF 中,我可以这样做:

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

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

4

2 回答 2

8

你可以使用这个:

<TextBlock>
    <Run Text="{Binding Path=Products.Count}" />
    <Run Text=" Products" />
</TextBlock>
于 2012-11-11T18:00:01.327 回答
3

根据 MSDN 上的文档,此功能(例如StringFormat,在Binding 类上)在 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}" />
于 2012-09-01T15:35:24.070 回答