/// <summary> /// Initializes a new instance of the <see cref="BindingEditorViewModel"/> class. /// </summary> /// <param name="propertyItem">The property item.</param> public BindingEditorViewModel(PropertyItem propertyItem) { _instance = (DependencyObject)propertyItem.Instance; Sources = new ListCollectionView(Enum.GetValues(typeof(BindingSource))); Sources.MoveCurrentToFirst(); Sources.CurrentChanged += (s, e) => OnSourceChanged(); Modes = new ListCollectionView(Enum.GetValues(typeof(BindingMode))); Modes.MoveCurrentToFirst(); Modes.CurrentChanged += (s, e) => UpdateBinding(); UpdateSourceTriggers = new ListCollectionView(Enum.GetValues(typeof (UpdateSourceTrigger))); UpdateSourceTriggers.MoveCurrentToFirst(); UpdateSourceTriggers.CurrentChanged += (s, e) => UpdateBinding(); SourceList = new ListCollectionView(_pathItems); BuildSourceTree(); _dpd = DependencyPropertyDescriptor.FromProperty(propertyItem.Property); _binding = BindingOperations.GetBinding((DependencyObject) propertyItem.Instance, _dpd.DependencyProperty); if (_binding == null) { UpdateBinding(); } else { if( _binding.Source == null ) { Sources.MoveCurrentTo(BindingSource.DataContext); } else if( _binding.RelativeSource != null ) { if( _binding.RelativeSource.Mode == RelativeSourceMode.PreviousData ) { Sources.MoveCurrentTo(BindingSource.PreviousData); } else if( _binding.RelativeSource.Mode == RelativeSourceMode.TemplatedParent) { Sources.MoveCurrentTo(BindingSource.TemplatedParent); } else if( _binding.RelativeSource.Mode == RelativeSourceMode.FindAncestor) { Sources.MoveCurrentTo(BindingSource.FindAncestor); } } UpdateExpression(); } }
public ChangeCarParentDialog(CarObject car) { InitializeComponent(); DataContext = this; Buttons = new[] { OkButton, CreateExtraDialogButton(ControlsStrings.CarParent_MakeIndependent, () => { Car.ParentId = null; Close(); }), CancelButton }; Car = car; Filter = car.Brand == null ? "" : @"brand:" + car.Brand; CarsListView = new ListCollectionView(CarsManager.Instance.LoadedOnly.Where(x => x.ParentId == null && x.Id != Car.Id).ToList()) { CustomSort = this }; UpdateFilter(); if (car.Parent == null) { CarsListView.MoveCurrentToPosition(0); } else { CarsListView.MoveCurrentTo(car.Parent); } Closing += CarParentEditor_Closing; }
public ImageSearchSettingsViewModel() : base("Image Search Plugin", new Uri(typeof(ImageSearchSettingsView).FullName, UriKind.Relative)) { DirectoryPickerCommand = new Command(() => { DirectoryPickerView directoryPicker = new DirectoryPickerView(); DirectoryPickerViewModel vm = (DirectoryPickerViewModel)directoryPicker.DataContext; vm.SelectedPath = FixedDownloadPath; if (directoryPicker.ShowDialog() == true) { FixedDownloadPath = vm.SelectedPath; MiscUtils.insertIntoHistoryCollection(FixedDownloadPathHistory, FixedDownloadPath); } }); ImageSaveMode = new ListCollectionView(Enum.GetValues(typeof(MediaViewer.Infrastructure.Constants.SaveLocation))); ImageSaveMode.MoveCurrentTo(ImageSearchPlugin.Properties.Settings.Default.ImageSaveMode); if (String.IsNullOrEmpty(ImageSearchPlugin.Properties.Settings.Default.FixedDownloadPath)) { FixedDownloadPath = Environment.GetFolderPath(Environment.SpecialFolder.MyPictures); } else { FixedDownloadPath = ImageSearchPlugin.Properties.Settings.Default.FixedDownloadPath; } FixedDownloadPathHistory = ImageSearchPlugin.Properties.Settings.Default.FixedDownloadPathHistory; }
public VideoSettingsViewModel() : base("Video", new Uri(typeof(VideoSettingsView).FullName, UriKind.Relative)) { DirectoryPickerCommand = new Command(() => { DirectoryPickerView directoryPicker = new DirectoryPickerView(); DirectoryPickerViewModel vm = (DirectoryPickerViewModel)directoryPicker.DataContext; vm.SelectedPath = VideoScreenShotLocation; vm.PathHistory = VideoScreenShotLocationHistory; if (directoryPicker.ShowDialog() == true) { VideoScreenShotLocation = vm.SelectedPath; } }); VideoScreenShotLocationHistory = Settings.Default.VideoScreenShotLocationHistory; if (String.IsNullOrEmpty(Settings.Default.VideoScreenShotLocation)) { Settings.Default.VideoScreenShotLocation = Environment.GetFolderPath(Environment.SpecialFolder.MyPictures); } VideoScreenShotSaveMode = new ListCollectionView(Enum.GetValues(typeof(Infrastructure.Constants.SaveLocation))); VideoScreenShotSaveMode.MoveCurrentTo(Settings.Default.VideoScreenShotSaveMode); VideoScreenShotLocation = Settings.Default.VideoScreenShotLocation; VideoScreenShotTimeOffset = Settings.Default.VideoScreenShotTimeOffset; MinNrBufferedPackets = Settings.Default.VideoMinBufferedPackets; StepDurationSeconds = Settings.Default.VideoStepDurationSeconds; MaxNrBufferedPackets = 1000; }
public EnumPropertyItem(PropertyDescriptor property, object instance) : base(property, instance) { EnumValues = new ListCollectionView(Enum.GetValues(property.PropertyType)); EnumValues.MoveCurrentTo(property.GetValue(instance)); EnumValues.CurrentChanged += OnEnumValueChanged; }
/// <summary> /// Initializes a new instance of the <see cref="GridLengthPropertyItem"/> class. /// </summary> /// <param name="property"></param> /// <param name="instance"></param> public GridLengthPropertyItem(PropertyDescriptor property, object instance) : base(property, instance) { var unitTypes = new List<GridUnitType>{ GridUnitType.Auto, GridUnitType.Pixel, GridUnitType.Star }; UnitTypes = new ListCollectionView(unitTypes); UnitTypes.MoveCurrentTo(GetValue().GridUnitType); UnitTypes.CollectionChanged += (s, e) => UpdateGridLength(Units); }
public ViewModel(string key) { NotesList = new ListCollectionView(ImportantTips.Entries.Where(x => !x.IsLimited || AppKeyHolder.IsAllRight).Reverse().ToList()); if (key != null) { NotesList.MoveCurrentTo(ImportantTips.Entries.FirstOrDefault(x => x.Id?.Contains(key) == true)); } else { NotesList.MoveCurrentToFirst(); } }
public EnumPropertyItem(PropertyDescriptor property, object instance, Type enumsType) : base(property, instance) { var properties = enumsType.GetProperties(); var values = properties.Select(propertyInfo => propertyInfo.GetValue(instance, null)).ToList(); EnumValues = new ListCollectionView(values); EnumValues.MoveCurrentTo(property.GetValue(instance)); EnumValues.CurrentChanged += OnEnumValueChanged; }
public StepViewModel(StepTypes type, JavaScriptEvent ev) { IsSelected = true; Status = null; StepType = CollectionViewSource.GetDefaultView(StepTypeCollection); JavaScriptEvents = new ListCollectionView(new[] { JavaScriptEvent.Click, JavaScriptEvent.KeyUp }); StepType.CurrentChanged += OnStepTypeChanged; JavaScriptEvents.CurrentChanged += OnJavaScriptEventsChanged; StepType.MoveCurrentTo(type); JavaScriptEvents.MoveCurrentTo(ev); }
public ImageSearchViewModel() { NrColumns = 4; SearchCommand = new AsyncCommand<int>(async (imageOffset) => { try { if (imageOffset == 0) { CurrentQuery = new ImageSearchQuery(this); } SearchCommand.IsExecutable = false; await doSearch(CurrentQuery, imageOffset); } catch (Exception e) { MessageBox.Show("Image search error\n\n" + e.Message, "Error", MessageBoxButton.OK, MessageBoxImage.Error); } finally { SearchCommand.IsExecutable = true; } }); ViewCommand = new Command<SelectableMediaItem>((selectableItem) => { ImageResultItem item = (ImageResultItem)selectableItem.Item; if(item.ImageInfo.ContentType.Equals("image/animatedgif")) { Shell.ShellViewModel.navigateToVideoView(item); } else { Shell.ShellViewModel.navigateToImageView(item); } }); ViewSourceCommand = new Command<SelectableMediaItem>((selectableItem) => { ImageResultItem item = (ImageResultItem)selectableItem.Item; Process.Start(item.ImageInfo.SourceUrl); }); SelectAllCommand = new Command(() => { MediaStateCollectionView.selectAll(); }, false); DeselectAllCommand = new Command(() => { MediaStateCollectionView.deselectAll(); }); CloseCommand = new Command(() => { OnClosingRequest(); }); DownloadCommand = new AsyncCommand<SelectableMediaItem>(async (selectableItem) => { List<MediaItem> items = MediaStateCollectionView.getSelectedItems(); if (items.Count == 0) { items.Add(selectableItem.Item); } String outputPath = null; switch (ImageSearchPlugin.Properties.Settings.Default.ImageSaveMode) { case MediaViewer.Infrastructure.Constants.SaveLocation.Current: { outputPath = MediaFileWatcher.Instance.Path; break; } case MediaViewer.Infrastructure.Constants.SaveLocation.Ask: { DirectoryPickerView directoryPicker = new DirectoryPickerView(); directoryPicker.DirectoryPickerViewModel.InfoString = "Select Output Directory"; directoryPicker.DirectoryPickerViewModel.SelectedPath = MediaFileWatcher.Instance.Path; if (directoryPicker.ShowDialog() == false) { return; } outputPath = directoryPicker.DirectoryPickerViewModel.SelectedPath; break; } case MediaViewer.Infrastructure.Constants.SaveLocation.Fixed: { outputPath = ImageSearchPlugin.Properties.Settings.Default.FixedDownloadPath; break; } default: break; } CancellableOperationProgressView progressView = new CancellableOperationProgressView(); DownloadProgressViewModel vm = new DownloadProgressViewModel(); progressView.DataContext = vm; progressView.Show(); vm.OkCommand.IsExecutable = false; vm.CancelCommand.IsExecutable = true; try { await Task.Factory.StartNew(() => { vm.startDownload(outputPath, items); }, vm.CancellationToken); } catch (Exception) { } vm.OkCommand.IsExecutable = true; vm.CancelCommand.IsExecutable = false; }); SettingsViewModel = (ImageSearchSettingsViewModel)ServiceLocator.Current.GetInstance(typeof(ImageSearchSettingsViewModel)); Size = new ListCollectionView(size); Size.MoveCurrentTo(Settings.Default.Size); SafeSearch = new ListCollectionView(safeSearch); SafeSearch.MoveCurrentTo(Settings.Default.SafeSearch); Layout = new ListCollectionView(layout); Layout.MoveCurrentTo(Settings.Default.Layout); Type = new ListCollectionView(type); Type.MoveCurrentTo(Settings.Default.Type); People = new ListCollectionView(people); People.MoveCurrentTo(Settings.Default.People); Color = new ListCollectionView(color); Color.MoveCurrentTo(Settings.Default.Color); GeoTag = new GeoTagCoordinatePair(); MediaState = new MediaState(); MediaStateCollectionView = new ImageResultCollectionView(MediaState); MediaStateCollectionView.MediaState.MediaStateType = MediaStateType.SearchResult; WeakEventManager<MediaLockedCollection, EventArgs>.AddHandler(MediaStateCollectionView.MediaState.UIMediaCollection, "IsLoadingChanged", mediaCollection_IsLoadingChanged); }
public MediaFileStateCollectionView(MediaFileState mediaState = null) : base(mediaState) { Filter = filterFunc; InfoIconsCache = InfoIconsCacheStatic; MediaFilter = MediaFilterMode.None; SortFunc = MediaFileSortFunctions.getSortFunction(MediaFileSortMode.Name); SortMode = MediaFileSortMode.Name; FilterModes = new ListCollectionView(Enum.GetValues(typeof(MediaFilterMode))); SortItemCollection<MediaFileSortItem, MediaFileSortMode> mediaFileSortItemCollection = new SortItemCollection<MediaFileSortItem,MediaFileSortMode>(); mediaFileSortItemCollection.ItemSortDirectionChanged += mediaFileSortItemCollection_ItemSortDirectionChanged; foreach(MediaFileSortMode mode in Enum.GetValues(typeof(MediaFileSortMode))) { mediaFileSortItemCollection.Add(new MediaFileSortItem(mode)); } SortModes = new ListCollectionView(mediaFileSortItemCollection); SortModes.CurrentChanged += (s, e) => { MediaFileSortItem sortItem = (MediaFileSortItem)SortModes.CurrentItem; SortMode = sortItem.SortMode; SortDirection = sortItem.SortDirection; SortFunc = MediaFileSortFunctions.getSortFunction(SortMode); refresh(); }; SortModes.Filter = mediaStateSortModeCollectionViewFilter; FilterModes.CurrentChanged += (s, e) => { MediaFilter = (MediaFilterMode)FilterModes.CurrentItem; SortModes.Refresh(); bool isRefreshed = false; switch (MediaFilter) { case MediaFilterMode.None: if (!MediaFileSortFunctions.isAllSortMode(SortMode)) { SortModes.MoveCurrentToFirst(); isRefreshed = true; } break; case MediaFilterMode.Video: if (!MediaFileSortFunctions.isVideoSortMode(SortMode)) { SortModes.MoveCurrentToFirst(); isRefreshed = true; } break; case MediaFilterMode.Images: if (!MediaFileSortFunctions.isImageSortMode(SortMode)) { SortModes.MoveCurrentToFirst(); isRefreshed = true; } break; case MediaFilterMode.Audio: if (!MediaFileSortFunctions.isAudioSortMode(SortMode)) { SortModes.MoveCurrentToFirst(); isRefreshed = true; } break; default: break; } if (!isRefreshed) { refresh(); } }; FilterModes.MoveCurrentTo(MediaFilterMode.None); }