代码之家  ›  专栏  ›  技术社区  ›  Mizipzor

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

  •  0
  • Mizipzor  · 技术社区  · 14 年前

    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); }
        }
    }
    

    现在的问题是另一个组件包含这个扩展的combobox控件。在包含控件中,当用户在组合框中选择新值时,我希望运行一些逻辑。我有点不知道我是怎么装那个钩子的。必须 MyCombobox 是否公开从SelectedEntry依赖项属性中的PropertyChanged回调激发的自定义事件?似乎有点老套,但我想不出别的办法。

    1 回复  |  直到 14 年前
        1
  •  2
  •   Tim Cooper    13 年前

    为什么不用另一个绑定呢?

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