Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/271.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 行为视图模型绑定_C#_Xaml_Xamarin_Xamarin.forms - Fatal编程技术网

C# 行为视图模型绑定

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> 我还

我试图编写一个简单的行为,使用max和min值来验证某个特定范围内输入的值:

<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>