WPF将属性绑定到子控件中的Dependency属性

时间:2010-08-20 09:46:07

标签: c# wpf xaml dependency-properties

我创建了一个包含单个组合框的自定义UserControl。组合框中当前选定的值绑定到自定义UserControls依赖项属性。

XAML:

<UserControl>
    <ComboBox
        ItemsSource="{Binding AllEntries}"
        SelectedItem="{Binding SelectedEntry}" />
</UserControl>

代码背后:

public partial class MyCombobox : UserControl
{
    public static DependencyProperty SelectedEntryProperty =
        DependencyProperty.Register("SelectedEntry",
            typeof(ComboboxEntry),
            typeof(MyCombobox));

    public ComboboxEntry SelectedEntry
    {
        get { return (ComboboxEntry)GetValue(SelectedEntryProperty); }
        set { SetValue(SelectedEntryProperty, value); }
    }
}

现在的问题是另一个组件包括这个扩展的组合框控件。在包含控件中,我想在用户在组合框中选择新值时运行一些逻辑。我有点失去了我如何设置该钩子。必须MyCombobox公开从SelectedEntry依赖项属性中的PropertyChanged回调触发的自定义事件?看似hacky,但我无法找到另一种方式。

1 个答案:

答案 0 :(得分:2)

为什么不使用另一种绑定?

<OuterControl>
    <StackPanel>
        <local:MyCombobox x:Name="myComboBox"/>
        <TextBlock Text="{Binding SelectedEntry, ElementName=myComboBox}"/>
    </StackPanel>
</OuterControl>