public MediaFileGridViewModel(MediaFileState mediaState, IEventAggregator eventAggregator)
        {
            EventAggregator = eventAggregator;
            NrColumns       = 4;

            MediaStateCollectionView = new MediaFileStateCollectionView(mediaState);


            ViewCommand = new Command <SelectableMediaItem>((selectableItem) =>
            {
                MediaItem item = selectableItem.Item;

                if (item.Metadata is ImageMetadata)
                {
                    Shell.ShellViewModel.navigateToImageView(item);
                }
                else if (item.Metadata is VideoMetadata ||
                         item.Metadata is AudioMetadata)
                {
                    Shell.ShellViewModel.navigateToVideoView(item);
                }
            });

            SelectAllCommand = new Command(() =>
            {
                MediaStateCollectionView.selectAll();
            }, false);

            DeselectAllCommand = new Command(() =>
            {
                MediaStateCollectionView.deselectAll();
            });

            BrowseLocationCommand = new Command <SelectableMediaItem>((selectableItem) =>
            {
                MediaItem item = selectableItem.Item;

                String location = FileUtils.getPathWithoutFileName(item.Location);

                EventAggregator.GetEvent <MediaBrowserPathChangedEvent>().Publish(location);
            });

            OpenLocationCommand = new Command <SelectableMediaItem>((selectableItem) =>
            {
                MediaItem item = selectableItem.Item;

                String location = FileUtils.getPathWithoutFileName(item.Location);

                Process.Start(location);
            });

            WeakEventManager <MediaLockedCollection, EventArgs> .AddHandler(MediaStateCollectionView.MediaState.UIMediaCollection, "IsLoadingChanged", mediaCollection_IsLoadingChanged);

            PrevFilterMode = MediaFilterMode.None;
        }
        /// <summary>
        /// Use a existing mediaFileStateCollectionView
        /// </summary>
        /// <param name="mediaFileStateCollectionView"></param>
        /// <param name="eventAggregator"></param>
        public MediaFileStackPanelViewModel(MediaFileStateCollectionView mediaFileStateCollectionView, IEventAggregator eventAggregator)
        {
            MediaStateCollectionView = mediaFileStateCollectionView;

            initialize(eventAggregator);
        }