1

我在继承自的类中使用这样的可绑定属性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 代码中也定义它?

4

0 回答 0