protected virtual void RegisterTarget(IServiceProvider serviceProvider) { var provideValueTarget = serviceProvider.GetService(typeof(IProvideValueTarget)) as IProvideValueTarget; object target = provideValueTarget.TargetObject; if (target != null) { TargetProperty = provideValueTarget.TargetProperty; TargetObjects.Add(new WeakReference(target)); } }