我有一个XAML
带有C#
代码隐藏的文档。
在C#
类中我定义了一些属性,然后我可以设置XAML
:
public partial class MyClass : ContentView
{
public Color MyColor { get; set; }
public MyClass()
{
InitializeComponent()
//Here I want to use the color
}
}
<MyClass MyColor="Blue"/>
问题是该属性从未设置。当我尝试使用它时,它仍然具有默认值(白色)。
当我使用时也会发生同样的情况BindableProperties
:
public static readonly BindableProperty MyColorProperty = BindableProperty.Create(nameof(MyColor), typeof(Color), typeof(MyClass), Colors.White);
public Color MyColor
{
get => (Color)GetValue(MyColorProperty);
set => SetValue(MyColorProperty, value);
}
你应该怎么做?我想使用在此元素实例上设置的属性 by XAML
,但它不起作用。
解决方案是使用OnHandlerChanged
. 经过一些实验,我可以确认XAML
在这个阶段已经设置了属性,并且每次都会调用它。
在代码中,它看起来像这样:
protected override void OnHandlerChanged()
{
base.OnHandlerChanged();
//Retrieve or use your properties
}
另一个建议的解决方案(如果您正在使用ContentPage
)是方法OnAppearing
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句