如何在用户控件中创建自定义属性

本文关键字:创建 自定义属性 控件 用户 | 更新日期: 2023-09-27 18:25:44

我有一个带有两个字段的用户控件:

public string OffText { set; get; }
public string OnText { set; get; }

在我的表单中添加此控件并填写OffTextOnText属性之后。在控制的构造函数中,我有:

    public FakeToggleSwitch()
    {
        InitializeComponent();
        if (State)
        {
            CheckEdit.Text = OnText;
        }
        else
        {
            CheckEdit.Text = OffText;
        }
    }

在调试模式下,我看到OnTextOffTextnull。这里可能出了什么问题?我用田地做什么?

如何在用户控件中创建自定义属性

这些不是字段,而是自动属性。

如果您使用auto属性,并且它的默认值应该不同于0(值类型)或null(引用类型),那么您可以在构造函数中设置它

public string OffText { set; get; }
public string OnText { set; get; }
public Constructor()
{
    // init
    OffText = "...";
    OnText = "...";
}

否则,您可能会决定使用正常属性

private string _offText = "..."; // default value
public string OffText
{
    get { return _offText; }
    set { _offText = value; }
}

如果使用wpf,那么通常UserControl属性必须有依赖属性(以支持绑定)。使用代码片段可以轻松创建依赖项属性。类型

propdp选项卡

获取

public int MyProperty
{
    get { return (int)GetValue(MyPropertyProperty); }
    set { SetValue(MyPropertyProperty, value); }
}
// Using a DependencyProperty as the backing store for MyProperty.  This enables animation, styling, binding, etc...
public static readonly DependencyProperty MyPropertyProperty = 
    DependencyProperty.Register("MyProperty", typeof(int), typeof(ownerclass), new PropertyMetadata(0));