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