如何在 C# 代码隐藏中使用 XAML 中定义的属性

削弱

我有一个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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在C#中使用内联XAML轻松在代码隐藏中创建自定义对象

如何从代码隐藏中使用 WPF XAML 中的属性

如何在 C# 中使用 WPF 绑定 Xaml 中的动态值

如何在代码中创建XAML自定义控件?

如何使用 c# 脚本更改 xaml 代码中的 x:Name 属性?

如何在 xaml 中编写我的代码

如何在UserControl中使用绑定的XAML属性?

如何在WPF中通过c#代码编写逐字XAML代码?

如何在C#中向XAML代码中的网格添加标签?

如何在 WPF/XAML 中使用 Nuget 包中的图标?

Windows应用商店-XAML C#-如何在代码中访问Page.Resource

如何在其他 ResourceDictionaries 中使用 App.xaml 中定义的 StaticResources?

如何使用C#代码隐藏从XAML工具包中的“材料设计”中检索其中一个托盘刷?

如何在代码隐藏中访问在XAML中创建的DataContext类实例?

将代码隐藏的定义属性绑定到XAML中的DataContext属性?

Xamarin.Forms长按效果-如何在隐藏代码中设置命令(NO XAML)

如何在XAML代码隐藏中获取按钮的背景颜色为十六进制?

如何在XAML中使默认属性不同于Content?

如何从代码隐藏中访问XAML中已指定的DataContext?

如何在XAML [Xamarin.Forms]中使用String以外的Type设置自定义属性值

如何在XAML中获取DynamicResource的属性?

如何在C#中访问HubView XAML的子元素?

如何在C#中从ViewModelHelper关闭窗口(XAML)?

C#UWP如何在xaml中显示string []?

如何在XAML中按条件隐藏组框

如何在 UWP [XAML] 中隐藏 DataGridTextColumn 列?

如何“合并” XAML文件及其在Visual Studio中的代码隐藏

在 xaml 中找不到命名空间,但可以在 C# 代码中使用

如何在 Xamarin(xaml 代码)中创建半透明框架?