xamarin中行为与视图模型之间的通信

时间:2018-09-29 13:54:39

标签: xamarin mvvm behavior

我有一个自定义行为,可以在附加到条目的视图中验证电话号码:

<Entry x:Name="phoneNumber" Text="{Binding TelephoneNum, Mode=TwoWay}">
    <Entry.Behaviors>
        <behaviors:TelNumBehavior x:Name="NumValidatorUser" />
    </Entry.Behaviors>
</Entry>

我正在将mvvm模式用于view和viewmodel。 该行为具有可绑定的isValid属性。如何在Viewmodel中使用该值?这两个类如何交流?消息传递服务不是我的选择,因为我有多种行为,需要验证所有这些行为。有没有办法访问行为的isValid-att?

1 个答案:

答案 0 :(得分:0)

命名您的页面,以供日后参考:

<ContentPage x:Name="Root" etc, etc>

在您的行为中,将页面的绑定路径和源设置为上下文:

<Entry x:Name="phoneNumber" Text="{Binding TelephoneNum, Mode=TwoWay}">
    <Entry.Behaviors>
             <behaviors:TelNumBehavior x:Name="NumValidatorUser" />
            IsValid="{Binding Source={x:Reference Root}, 
                      Path=BindingContext.YourPropertyIsValid, Mode=TwoWay}"/>
    </Entry.Behaviors>        
</Entry>