動作はBindableObjectであるため、EmailValidatorBehaviorにBindablePropertyを追加するだけで済みます。
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); }
}
}
、その後、あなたのViewModel
EDITからそのプロパティにバインド:結合BindingModeを設定せずにViewModelにに行動から伝播しないことに注意してください。設定の性質を考慮すると、最も適切なBindingModeはOneWayToSource
になります。これにより、プロパティがViewModelに対してのみ有効に読み取られるようになります。
生憎、IsEmailValidプロパティは私のViewModel.In行動内の状態を変更しない、私はメールが有効であるとき、「GetValueメソッドを返すには、」trueを返していることがわかります
取り組ん例えばhttps://github.com/dansiegel/Validation-With-Prism-Behaviorを参照してください、しかし、私のViewModelでは、IsEmailValidはfalseのままです! – Dimitris
@Dimitris編集を参照してください。 BindingModeを設定するだけです。 –
私は変更を行いましたが、私は同じ結果を得ます。何も変わっていません! – Dimitris