我创建了一个包含单个组合框的自定义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,但我无法找到另一种方式。
答案 0 :(得分:2)
为什么不使用另一种绑定?
<OuterControl>
<StackPanel>
<local:MyCombobox x:Name="myComboBox"/>
<TextBlock Text="{Binding SelectedEntry, ElementName=myComboBox}"/>
</StackPanel>
</OuterControl>