整数的BindableProperty的Setter从未从xaml调用(Xamarin.forms)

时间:2016-05-08 20:23:37

标签: xaml xamarin binding xamarin.forms

我正在使用Xamarin.forms创建应用程序。

我设置整数的BindableProperty。 但它的setter从未被调用过,甚至没有从xaml设置。

<... SelectedIndex="{Binding myValue}">

我做错了什么?

感谢。

   public class CircleSegmentControl : StackLayout
        {
            public static readonly BindableProperty SegmentInitialIndexProperty = BindableProperty.Create("SelectedIndex", typeof(int), typeof(CircleSegmentControl), 0);
            public int SelectedIndex {
set{ 
Debug.WriteLine("setter"); 
SetValue(SegmentInitialIndexProperty, value); 
SelectIndex(value); 
}
get{
Debug.WriteLine("getter"); 
return (int)GetValue(SegmentInitialIndexProperty);
}
}
    ...
    }

1 个答案:

答案 0 :(得分:2)

显然,同样适用于WPF依赖项属性。您不得在属性包装器的GetValueSetValue方法中调用getset以外的任何内容:

public int SelectedIndex
{
    get { return (int)GetValue(SelectedIndexProperty); }
    set { SetValue(SelectedIndexProperty, value); }
}

要获得有关房产价值更改的通知(要调用SelectIndex方法),您应该向propertyChanged代表注册另一个BindableProperty.Create重载。