public static TWidget TryGetWidget <TWidget>(WidgetsListControlViewModel widgetsViewModel, out bool shouldReload, TWidget defaultValue = default(TWidget)) where TWidget : IWidgetItemModel, new()
        {
            bool canAddWidget           = widgetsViewModel.CanAddWidget(typeof(TWidget).Name);
            bool isWidgetSettingEnabled = TryGetIsWidgetSettingEnabled <TWidget>();

            if (canAddWidget && isWidgetSettingEnabled)
            {
                shouldReload = true;
                return(new TWidget());
            }
            else if (!canAddWidget && !isWidgetSettingEnabled) // The widgets exists but the setting has been disabled for it
            {
                // Remove the widget
                widgetsViewModel.RemoveWidget <TWidget>();
                shouldReload = false;
                return(default(TWidget));
            }
            else if (!isWidgetSettingEnabled)
            {
                shouldReload = false;
                return(default(TWidget));
            }

            shouldReload = EqualityComparer <TWidget> .Default.Equals(defaultValue, default(TWidget));

            return(defaultValue);
        }
Example #2
0
        public YourHomeViewModel(WidgetsListControlViewModel widgetsViewModel, IShellPage associatedInstance)
        {
            this.widgetsViewModel   = widgetsViewModel;
            this.associatedInstance = associatedInstance;

            // Create commands
            YourHomeLoadedCommand = new RelayCommand <RoutedEventArgs>(YourHomeLoaded);
            LoadBundlesCommand    = new RelayCommand <BundlesViewModel>(LoadBundles);
        }