protected override void OnInitialize()
        {
            base.OnInitialize();

            Shell = ParentModel.Shell;

            //если установили фильтр по мнн нужно сбросить поисковый запрос что бы отобразить все
            //товары с таким мнн
            ParentModel.ObservableForProperty(m => m.FilterByMnn).Where(x => x.Value)
            .Subscribe(_ => SearchBehavior.ActiveSearchTerm.Value = "");

            //после закрытия формы нужно отписаться от событий родительской формы
            //что бы не делать лишних обновлений
            ParentModel.ObservableForProperty(m => (object)m.FilterByMnn)
            .Merge(ParentModel.ObservableForProperty(m => (object)m.CurrentFilter))
            .Merge(ParentModel.ObservableForProperty(m => (object)m.ShowWithoutOffers))
            .Merge(SearchBehavior.ActiveSearchTerm.Cast <Object>())
            .Throttle(TimeSpan.FromMilliseconds(30), Scheduler)
            .Do(_ => IsLoading.Value = true)
            .Select(_ => RxQuery(LoadData))
            .Switch()
            .Do(_ => IsLoading.Value = false)
            .Subscribe(Items, CloseCancellation.Token);

            Items.Subscribe(_ => {
                CurrentItem.Value = (Items.Value ?? Enumerable.Empty <CatalogDisplayItem>()).FirstOrDefault();
            });
        }
        protected override void OnInitialize()
        {
            base.OnInitialize();

            Promotions = new PromotionPopup(Shell.Config, CurrentCatalogName, Env);
            ParentModel.ObservableForProperty(m => (object)m.FilterByMnn, skipInitial: false)
            .Merge(ParentModel.ObservableForProperty(m => (object)m.CurrentFilter))
            .Merge(ParentModel.ObservableForProperty(m => (object)m.ShowWithoutOffers))
            .Select(_ => RxQuery(LoadCatalogNames))
            .Switch()
            .Subscribe(CatalogNames, CloseCancellation.Token);
            CatalogNames.Subscribe(_ => {
                CurrentCatalogName.Value = CurrentCatalogName.Value
                                           ?? (CatalogNames.Value ?? Enumerable.Empty <CatalogName>()).FirstOrDefault();
            });

            ProducerPromotions = new ProducerPromotionPopup(Shell.Config, CurrentCatalogName, Env);
        }