简单的概念证明(我会使用转换器,但我正在学习Markup Extensions)
这是基于Evolve 2016会话https://evolve.xamarin.com/session/56e201d2bad314273ca4d813
我有一个绑定到带有Label的简单模型的页面。
<Label
Text="{Binding Path=Amount1, StringFormat='{0:C}'}"
TextColor="{toolkit:FinancialColor PrettyMoney={Binding Amount1}}"></Label>
我需要将Amount1
从Model
发送到IMarkupExtenion
FinancialColor
,但我收到错误PrettyMoney
没有属性,可绑定属性或事件。
这是我的MarkupExtension
public class FinancialColorExtension : IMarkupExtension
{
public decimal PrettyMoney { get; set; }
public object ProvideValue(IServiceProvider serviceProvider)
{
if (PrettyMoney == 0) return Color.Black;
if (PrettyMoney < 0) return Color.Red;
return Color.Green;
}
}