Связь между поведением и моделью представления в xamarin - PullRequest
0 голосов
/ 29 сентября 2018

У меня есть пользовательское поведение для проверки телефонных номеров в моем представлении, прикрепленном к записи:

<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 голосов
/ 30 сентября 2018

Назовите вашу страницу, на которую будете ссылаться позже:

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