Свойство привязки WPF к свойству зависимости в дочернем элементе управления - PullRequest
0 голосов
/ 20 августа 2010

Я создал пользовательский элемент управления 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); }
    }
}

Теперь проблема в томдругой компонент включает в себя этот расширенный контроль combobox.В управляющем элементе я хочу запустить некоторую логику, когда пользователь выбирает новое значение в выпадающем списке.Я немного растерялся относительно того, как я настроил этот крючок.Должны ли MyCombobox предоставлять пользовательское событие, которое вызывается из обратного вызова PropertyChanged в свойстве зависимостей SelectedEntry?Кажется хаки, но я не могу найти другой способ.

1 Ответ

2 голосов
/ 20 августа 2010

Почему бы просто не использовать другую привязку?

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