Несколько вещей здесь не так.
Если вы используете свойства зависимости, вам не нужно реализовывать INotifyPropertyChanged.
Кроме того, WPF не использует установщик свойства зависимости, а вместо этого устанавливает поле поддержки напрямую. Вот почему установка точки останова в установщике не работает.
Если вы хотите выполнить код, когда WPF устанавливает свойство, существует перегрузка метода Register, который позволяет вам указывать обработчик, который запускается каждый раз, когда устанавливается свойство.
public static readonly DependencyProperty SelectedItemProperty =
DependencyProperty.Register(
"SelectedItem", typeof(object), typeof(MySecondUserControl),
new PropertyMetadata(SelectedItemChanged));
private static void SelectedItemChanged(
DependencyObject d, DependencyPropertyChangedEventArgs e)
{
MySecondUserControl instance = (MySecondUserControl)d;
instance.OnSelectedItemChanged(e);
}
protected virtual void OnSelectedItemChanged(
DependencyPropertyChangedEventArgs e)
{
// Do code triggered by change here
}
Наконец, синтаксис привязки неверен (опечатка?). Вы пропускаете}, и ваши цитаты не в том месте. Должно быть:
<MyControls:MySecondUserControl
x:Name="m_controlTwo"
SelectedItem="{Binding Path=SelectedItem, ElementName=m_controlOne}"
/>