public BasicEditDialog(IServiceProvider serviceProvider, BasicItem existing)
            : base(serviceProvider)
        {
            InitializeComponent();
            var container = new CompositeDisposable();

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

            txtDomain.Text = existing.Domain;
            txtRealm.Text  = existing.Realm;

            container.Add(
                Observable.FromEventPattern <EventArgs>(btnOK, "Click")
                .Subscribe(evt =>
            {
                existing.Domain = txtDomain.Text;
                existing.Realm  = txtRealm.Text;
                existing.Apply();
                DialogResult = DialogResult.OK;
            }));
        }