public ApplicationPoolDefaultsSettingsDialog(IServiceProvider serviceProvider, ApplicationPoolDefaults defaults)
            : base(serviceProvider)
        {
            InitializeComponent();
            _defaults = defaults;
            var settings = new ApplicationPoolDefaultsSettings(defaults);

            propertyGrid1.SelectedObject = settings;
        }
        public ApplicationPoolDefaultsSettingsDialog(IServiceProvider serviceProvider, ApplicationPoolDefaults defaults)
            : base(serviceProvider)
        {
            InitializeComponent();
            var settings = new ApplicationPoolDefaultsSettings(defaults);

            propertyGrid1.SelectedObject = settings;

            var container = new CompositeDisposable();

            FormClosed += (sender, args) => container.Dispose();

            container.Add(
                Observable.FromEventPattern <EventArgs>(btnOK, "Click")
                .ObserveOn(System.Threading.SynchronizationContext.Current)
                .Subscribe(evt =>
            {
                ((ApplicationPoolDefaultsSettings)propertyGrid1.SelectedObject).Apply(defaults);
                DialogResult = DialogResult.OK;
            }));
        }