/// <summary> /// Called when [loaded]. /// </summary> /// <param name="sender">The sender.</param> /// <param name="e">The <see cref="RoutedEventArgs" /> instance containing the event data.</param> private void OnLoaded(object sender, RoutedEventArgs e) { if (sender is DependencyObject dependencyObject) { this.Update( AttachedFork <T, TOwner> .GetValueOrRegisterParentChanged( dependencyObject, i => this.UpdateValue(i))); } }
/// <summary> /// Provides the value internal. /// </summary> /// <param name="serviceProvider">The service provider.</param> /// <returns></returns> protected override object ProvideValueInternal(IServiceProvider serviceProvider) { var provideValueTarget = (IProvideValueTarget)serviceProvider.GetService(typeof(IProvideValueTarget)); if (provideValueTarget.TargetObject is DependencyObject dependencyObject) { var value = AttachedFork <T, TOwner> .GetValueOrRegisterParentChanged( dependencyObject, i => this.UpdateValue(i)); return(value); } return(null); }