在 WPF 中,我可以这样做:
<TextBlock Text="{Binding Products.Count, StringFormat='{0} Products'}"
Windows 8 / WinRT 中的等效项是什么,因为不再支持此语法?
在 WPF 中,我可以这样做:
<TextBlock Text="{Binding Products.Count, StringFormat='{0} Products'}"
Windows 8 / WinRT 中的等效项是什么,因为不再支持此语法?
你可以使用这个:
<TextBlock>
<Run Text="{Binding Path=Products.Count}" />
<Run Text=" Products" />
</TextBlock>
根据 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}" />