C# 行为视图模型绑定
我试图编写一个简单的行为,使用max和min值来验证某个特定范围内输入的值:C# 行为视图模型绑定,c#,xaml,xamarin,xamarin.forms,C#,Xaml,Xamarin,Xamarin.forms,我试图编写一个简单的行为,使用max和min值来验证某个特定范围内输入的值: <Entry Text="{Binding Quantity, Mode=TwoWay}"> <Entry.Behaviors> <ui:ValueInRangeValidator x:Name="QtyValidator" MinValue="1" MaxValue="10"/> </Entry.Behaviors> </Entry> 我还
<Entry Text="{Binding Quantity, Mode=TwoWay}">
<Entry.Behaviors>
<ui:ValueInRangeValidator x:Name="QtyValidator" MinValue="1" MaxValue="10"/>
</Entry.Behaviors>
</Entry>
我还尝试在BindableProperty上设置property changed事件,但似乎从未触发。我知道viewmodel是正确的,因为将同一属性绑定到标签会显示值。请尝试以下操作:
<Entry x:Name="Entry1"
BindingContext="{Binding}"
Text="{Binding Quantity,
Mode=TwoWay}">
<Entry.Behaviors>
<ui:ValueInRangeValidator x:Name="QtyValidator"
MinValue="1"
MaxValue="{Binding BindingContext.MaxVal, Source={x:Reference Entry1}}"/>
</Entry.Behaviors>
</Entry>
我改为将名称添加到父视图中,因为这意味着我不需要重新绑定或命名条目控件,并且可以在多个位置需要时对整个视图进行访问。谢谢你的帮助!这正是我想要的。另一方面,在MaxValue绑定到该值之前,OnEntryTextChanged of条目会触发。“你知道怎么阻止它吗?”哈西莎:对不起,恐怕我不知道。
<Entry x:Name="Entry1"
BindingContext="{Binding}"
Text="{Binding Quantity,
Mode=TwoWay}">
<Entry.Behaviors>
<ui:ValueInRangeValidator x:Name="QtyValidator"
MinValue="1"
MaxValue="{Binding BindingContext.MaxVal, Source={x:Reference Entry1}}"/>
</Entry.Behaviors>
</Entry>