从ViewModel绑定到行为

时间:2015-07-06 05:50:47

标签: c# xaml mvvm xamarin xamarin.forms

我的ViewModel上有一个属性,我需要绑定到我的行为中的BindableProperty,但我似乎无法将其绑定。

private int _test;
    public int Test {
        get {
            return _test;
        }
        set {
            if (SetProperty (ref _test, value)) {
                _profileIsDirty = true;
                NotifyPropertyChanged ("AllowUpdate");

            }

        }
    }

这是行为中的属性

        public static readonly BindableProperty MinLengthProperty = BindableProperty.Create("MinLength", typeof(int), typeof(MinLengthValidator), 0);

    public int MinLength
    {
        get { return (int)GetValue(MinLengthProperty); }
        set { SetValue(MinLengthProperty, value); }
    }

这是ViewModel上的属性,这就是我尝试在XAML中绑定它的方式

<behave:TelephoneNumberValidatorBehaviour x:Name="phoneValidator" MinLength="{Binding Test, Mode=OneWay}"/>

但它永远不会结合。我在这里做错了吗?

2 个答案:

答案 0 :(得分:0)

您是否尝试将NotifyPropertyChanged的值更改为&#34;测试&#34;而不是&#34; AllowUpdate&#34;?否则,永远不会通知UI该值已更改为Test。相反,它会引发AllowUpdate属性已更改的值,这在ViewModel中不存在。

答案 1 :(得分:0)

BindableProperty.Create的第三个参数应该是定义BindableProperty的类的类型。根据您的样本,我猜它应该是typeof(TelephoneNumberValidatorBehaviour)而不是 typeof(MinLengthValidator)