Во-первых, как указано в предыдущем ответе, IsEnabled
является свойством зависимости, поэтому вы можете настроить привязку, чтобы что-то делать, когда это изменится. Вы говорите: «Требуется, чтобы он мог установить фокус на какой-то конкретный элемент управления, присутствующий в нем», в этом случае вам может потребоваться установить привязку к свойству дочернего элемента управления (например, IsFocused
).
Если у вас есть какая-то конкретная логика, которая вам нужна, вы всегда можете установить собственное свойство зависимости, связать его с IsEnabled
и установить свою собственную логику в измененном обработчике. Или, в принципе, сделать то же самое без установки нового свойства зависимости, вы можете добавить свой собственный измененный обработчик в IsEnabled
с помощью AddOwner
:
UIElement.IsEnabledProperty.AddOwner(typeof(MyUserControl), new FrameworkPropertyMetadata(OnIsEnabledChanged));
public static void OnIsEnabledChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
{
((MyUserControl)d).DoSomething();
}