将用户控件绑定到 属性

Binding user control to property

我正在尝试制作自定义控件并将其绑定到静态字段。 我有点卡住了,但这就是我希望它的工作方式:

<BooleanControl desc="Description" bind = {Binding Save.b}/>

Desc 是复选框的描述,Save 是 class 保存需要绑定到控件的字段 b。

我正在制作自定义控件,因为我还需要能够通过向构造函数提供对字段的描述和引用来制作控件。

这是我现在拥有的:

public partial class BooleanControl : UserControl
{
    public string desc { set; get; }

    public BooleanControl()
    {
        InitializeComponent();
    }
}

但我不确定这是否是正确的方法,因为我不打算更改描述,我只需要在设计器中设置它并将值赋给构造函数。 我仍然缺少根据复选框的值(在 BooleanControl 中)更新 Save.b 的部分,因为我不确定什么是正确的方法。

创建一个名为 Bind 的 "yourclass" 类型的动态 属性,当它被填充时,用它做你想做的事。它看起来像这样:

public YourClass Bind
    {
        get { return (YourClass)GetValue(BindProperty); }
        set { SetValue(BindProperty, value); }
    }

    // Using a DependencyProperty as the backing store for Bind.  This enables animation, styling, binding, etc...
    public static readonly DependencyProperty BindProperty =
        DependencyProperty.Register("Bind", typeof(YourClass), typeof(UserControl1), new PropertyMetadata(BindModified));

    private static void BindModified(DependencyObject d, DependencyPropertyChangedEventArgs e)
    {
        ((UserControl1)d).AttachEventHandler();
    }

    private void AttachEventHandler()
    {
        //Modify what you want here
    }

您可以根据需要简单地使用它:

<BooleanControl Bind="{Binding Save.b}"/>