2
我试着写与MAX-和MIN-值的简单行为,在一定范围内验证输入的值:行为 - 视图模型绑定
<Entry Text="{Binding Quantity, Mode=TwoWay}">
<Entry.Behaviors>
<ui:ValueInRangeValidator x:Name="QtyValidator" MinValue="1" MaxValue="10"/>
</Entry.Behaviors>
</Entry>
这工作得很好,但尝试添加绑定时例如。 MaxValue="{Binding MaxVal}"
该值为默认值。
我用我的行为如下:
public static BindableProperty MaxValueProperty =
BindableProperty.Create("MaxValue", typeof(decimal?), typeof(ValueInRangeValidator));
public decimal? MaxValue
{
get { return (decimal?)GetValue(MaxValueProperty); }
set
{
SetValue(MaxValueProperty, value);
OnPropertyChanged();
}
}
我也试着设置在BindableProperty属性更改事件,但它似乎永远不会开火。我知道viewmodel是正确的,因为将同一个属性绑定到标签可以显示值。
我加了名字到父视图,而不是,因为这意味着我不需要重新绑定或命名该项控制,并使得整个访问查看万一您需要在多个地方使用它。 感谢您的帮助! –