WPF将属性绑定到子控件中的依赖项属性

问题描述:

我创建了包含单个组合框的自定义UserControl。当前在组合框中选择的值绑定到自定义UserControls依赖项属性。WPF将属性绑定到子控件中的依赖项属性

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回调触发的?似乎哈克,但我不能找出另一种方式。

为什么不只是使用另一个绑定?

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

我正要回来,并删除的问题(它没有得到我查了第一个小时内的任何答案)... ...但你说得对,另一个结合是什么,我试图做的,但是我在后面的代码中使用DataContext属性进行许多丑陋的黑客攻击,所以我搞砸了绑定。它现在可以正常工作,使用您描述的bind-through-elementname方法。我会接受并留在这里,一些代表给你,但我怀疑它会帮助别人在这里绊倒。干杯! :) – Mizipzor 2010-08-20 12:07:16