2015-07-06 4 views
0

У меня есть свойство на моем ViewModel, которое мне нужно связать с BindableProperty в моем поведении, но я не могу заставить его привязываться.Переплет от ViewModel к поведению

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}"/> 

Но это никогда не связывается. Я здесь что-то не так?

ответ

0

Вы пытались изменить значение вашего NotifyPropertyChanged на «Test» вместо «AllowUpdate»? В противном случае пользовательский интерфейс никогда не будет уведомлен об изменении значения теста. Вместо этого возникает вопрос о том, что значение свойства AllowUpdate было изменено, чего нет в вашем ViewModel.

+0

Да у меня есть, есть встроенный в уведомлении в методе SetProperty так это разве что, к сожалению. –

0

Третий параметр BindableProperty.Create должен быть типом класса, в котором определяется BindableProperty. На основе вашего образца, я предполагаю, что это должно быть typeof(TelephoneNumberValidatorBehaviour) и не typeof(MinLengthValidator)

Смежные вопросы