行为是BindableObject,所以你可以简单地添加一个BindableProperty您EmailValidatorBehavior。
public class EmailValidatorBehavior : BehaviorBase<Entry>
{
public static readonly BindableProperty IsEmailValidProperty =
BindableProperty.Create(nameof(IsEmailValid), typeof(bool), typeof(EmailValidatorBehavior), false, BindingMode.OneWayToSource);
public bool IsEmailValid
{
get { return (bool)GetValue(IsEmailValidProperty); }
set { SetValue(IsEmailValidProperty, value); }
}
}
,然后绑定到该属性从您的视图模型
编辑:请注意,没有设定BindingMode的结合将不会从行为到视图模型传播。考虑到设置的性质,最合适的BindingMode将是OneWayToSource
,因为这使得该属性只能有效地读取ViewModel。
看到https://github.com/dansiegel/Validation-With-Prism-Behavior的工作示例
可惜的是,在IsEmailValid属性不会更改在我的ViewModel.In的行为状态,我可以看到,“回归的GetValue”当电子邮件是有效的返回true,但在我的ViewModel中,IsEmailValid保持为false! – Dimitris
@Dimitris查看编辑。你只需要设置BindingMode。 –
我做了更改,但得到了同样的结果。没有改变! – Dimitris