我有一个简单的用户控件:
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也能更改。我正在尝试创建一个用户控件,将结果“输出”到父控件。我该怎么做呢?谢谢。
答案 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));