将用户控件绑定到属性

时间:2015-06-29 17:51:43

标签: c# wpf xaml wpf-controls

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

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

Desc是checkBox的描述,Save是保存字段b的类,需要绑定到控件。

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

这就是我现在所拥有的:

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

    public BooleanControl()
    {
        InitializeComponent();
    }
}

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

1 个答案:

答案 0 :(得分:1)

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

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}"/>