/// <summary> /// Initializes a new instance of <see cref="ComponentModelElement"/>. /// </summary> /// <param name="elementViewModel">The <see cref="ElementViewModel"/> that will be represented by this <see cref="IComponent"/>.</param> /// <param name="serviceProvider">A <see cref="IServiceProvider"/> instance that will be used to obtain services.</param> public ComponentModelElement(ElementViewModel elementViewModel, IServiceProvider serviceProvider) { this.site = new SiteImpl(this, serviceProvider); this.typeDescriptorProxy = new ViewModelTypeDescriptorProxy(elementViewModel); foreach (PropertyDescriptor property in ((ICustomTypeDescriptor)this).GetProperties()) { property.AddValueChanged(this, (sender, args) => { var handler = PropertyChanged; if (handler != null) { handler(this, new PropertyChangedEventArgs(property.Name)); } }); } }
/// <summary> /// Initializes a new instance of <see cref="ComponentModelElement"/>. /// </summary> /// <param name="elementViewModel">The <see cref="ElementViewModel"/> that will be represented by this <see cref="IComponent"/>.</param> /// <param name="serviceProvider">A <see cref="IServiceProvider"/> instance that will be used to obtain services.</param> public ComponentModelElement(ElementViewModel elementViewModel, IServiceProvider serviceProvider) { this.site = new SiteImpl(this, serviceProvider); this.typeDescriptorProxy = new ViewModelTypeDescriptorProxy(elementViewModel); foreach (PropertyDescriptor property in ((ICustomTypeDescriptor)this).GetProperties()) { property.AddValueChanged(this, (sender, args) => { var handler = PropertyChanged; if (handler != null) { handler(this, new PropertyChangedEventArgs(property.Name) ); } }); } }