我想声明一个BindableProperty作为BindablePropertyXamarin.Forms 中另一个的便利属性。设置一个将更新另一个。我不会给出完整的上下文和实际类型,但一个非常简单易懂的场景如下:
我有一个定义 Number 和 Numberp1 属性的视图。Number 是可绑定的,而 Numberp1 属性在这里充当便利属性。
//Definition
public class MyView : ContentView
{
public static BindableProperty NumberProperty = BindableProperty.Create(nameof(Number), typeof(int), typeof(MyView));
public int Number { get => (int)GetValue(NumberProperty); set => SetValue(NumberProperty, value); }
public int Numberp1 { get => Number + 1; set => Number = value - 1; }
}
//Usage
<local:MyView Number="{Binding Number}"/>
事情进展顺利,直到客户发现 Numberp1 不可绑定并且希望我使其可绑定。
<local:MyView Numberp1="{Binding Numberp1}"/>
//error : No property, bindable property, or event found for 'Numberp1', or mismatching type between value and property.
我如何使这两个属性都可绑定但又使它们相互更新?我尝试使用转换器进行调查,但它们似乎只能在绑定中使用,而不是在BindableProperty定义中使用。
智慧大石
翻过高山走不出你
RISEBY
随时随地看视频慕课网APP
相关分类