public IconMapViewModel()

in WindowsSmartInk/SmartInkLaboratory/ViewModels/IconMapViewModel.cs [99:152]


        public IconMapViewModel(IAppStateService state)
        {
            _state = state;

            _state.PackageChanged += async(s, e) => {
                if (_state.CurrentPackage == null)
                {
                    //_storageFolder = null;
                    VisualStateChanged.Invoke(this, new VisualStateEventArgs { NewState = "NotMedia" });
                    return;
                }
                //_storageFolder = await ApplicationData.Current.LocalFolder.CreateFolderAsync(_state.CurrentPackage.Name, CreationCollisionOption.OpenIfExists);
                IsMediaPackage = _state.CurrentPackage.IsMediaPackage;
                //VisualStateChanged.Invoke(this, new VisualStateEventArgs { NewState = "HasPackage" });
                var mediaState = (IsMediaPackage) ? "IsMedia" : "NotMedia";
                VisualStateChanged.Invoke(this, new VisualStateEventArgs { NewState = mediaState });
            };

            _state.TagChanged += async (s,e)=>{
                if (_state.CurrentPackage == null)
                    return;

                if (_state.CurrentTag != null)
                {
                    if (!_state.CurrentPackage.Tags.Contains(_state.CurrentTag.Name.ToLower()))
                        await _state.CurrentPackage.AddTagAsync(_state.CurrentTag.Id, _state.CurrentTag.Name);
                    if (IsMediaPackage)
                        await SetIconLocation(_state.CurrentTag.Id);
                }
                OpenFile.RaiseCanExecuteChanged();
            };

            this.OpenFile = new RelayCommand(async() => {
                var picker = new FileOpenPicker();
                picker.ViewMode =PickerViewMode.Thumbnail;
                picker.SuggestedStartLocation = PickerLocationId.PicturesLibrary;
                picker.FileTypeFilter.Add(".jpg");
                picker.FileTypeFilter.Add(".jpeg");
                picker.FileTypeFilter.Add(".png"); 
               

                var file = await picker.PickSingleFileAsync();
                if (file != null)
                {
                    await UpdateIconAsync(file);
                    await _state.CurrentPackage.SaveAsync();
                    _state.IconUpdated();
                }
            },
            ()=> {
                return _state.CurrentProject != null && CurrentTag != null; });

            
        }