我在继承自的类中使用这样的可绑定属性Xamarin.Forms.ContentView
:
public static readonly BindableProperty OverlayColorProperty = BindableProperty.Create(nameof(OverlayColor), typeof(Color), typeof(MyControl), Color.FromHex("#55000000"));
public Color OverlayColor
{
get => (Color)GetValue(OverlayColorProperty);
set => SetValue(OverlayColorProperty, value);
}
此外,我正在监听更新内部元素背景颜色的更改:
protected override void OnPropertyChanged(string propertyName)
{
base.OnPropertyChanged(propertyName);
switch (propertyName)
{
case nameof(OverlayColor):
GridBackground.BackgroundColor = OverlayColor;
break;
}
}
我刚刚注意到 OnPropertyChanged 没有使用默认值调用。就在我从另一个地方更新它时,XAML 或通过代码。
这是预期的行为吗?如果是,为什么?我应该怎么做?在 XAML 代码中也定义它?