用户控件的双向依赖属性绑定

时间:2014-05-13 18:18:36

标签: wpf

我有一个简单的用户控件:

 public partial class FreqSpreadUC : UserControl
{
    public FreqSpreadUC()
    {            
        InitializeComponent();  
        FreqOne = "trying to pass this on to the parent";
    }

    public String FreqOne
    {
        get { return (String)GetValue(FreqOneProperty); }
        set { SetValue(FreqOneProperty, value); }
    }

    // Using a DependencyProperty as the backing store for FreqOne.  This enables animation, styling, binding, etc...
    public static readonly DependencyProperty FreqOneProperty =
        DependencyProperty.Register("FreqOne", typeof(String), typeof(FreqSpreadUC));



}

然后我按照以下方式消费它:

  <spread:FreqSpreadUC FreqOne="{Binding TestFreqOne}" />

当底层用户控件更改其FreqOne依赖项属性时,我也希望TestFreqOne也能更改。我正在尝试创建一个用户控件,将结果“输出”到父控件。我该怎么做呢?谢谢。

1 个答案:

答案 0 :(得分:2)

你的问题标题已经暗示了它。你需要一个双向绑定:

<spread:FreqSpreadUC FreqOne="{Binding TestFreqOne, Mode=TwoWay}" />

或者,您可以使用依赖项属性注册属性元数据,使其默认为双向绑定:

public static readonly DependencyProperty FreqOneProperty =
    DependencyProperty.Register(
        "FreqOne", typeof(String), typeof(FreqSpreadUC)
        new FrameworkPropertyMetadata(
            null, FrameworkPropertyMetadataOptions.BindsTwoWayByDefault));