public IDisposable AddAppBar(ReactiveAppBar appbar)
        {
            if (appbar == null)
            {
                throw new ArgumentNullException("appbar");
            }

            grid.Children.Add(appbar);
            this.Log().Info("Appbar {0} added.", appbar.GetHashCode());

            IDisposable dismiss = appbar.Opened.Merge(appbar.Closed).Subscribe(x => UpdateDismissLayerInteraction());
            return Disposable.Create(() =>
            {
                dismiss.Dispose();
                grid.Children.Remove(appbar);
                this.Log().Info("Appbar {0} removed.", appbar.GetHashCode());
                UpdateDismissLayerInteraction();
            });
        }