public AutocompleteViewModel(SuggestionsMaker sugMaker, IEnumerable <object> initItems = null) { Contract.Requires(sugMaker != null); this.sugMaker = sugMaker; this.blankSetter = new BlankSetter(sugMaker.FirstMatchingOrNewWord, OpenMeasureEditor, OpenIcdSelector); this.tagsWritable = new ObservableCollection <TagViewModel>(); Suggestions = new ObservableCollection <SuggestionViewModel>(); Tags = new INCCReadOnlyObservableCollection <TagViewModel>(tagsWritable); Tags.CollectionChangedWrapper += (s, e) => { if (inDispose) { return; } // logger.DebugFormat("{0} '{1}' '{2}'", e.Action, e.OldStartingIndex, e.NewStartingIndex); // кроме добавления пустого тега if (!(e.Action == NotifyCollectionChangedAction.Add && ((TagViewModel)e.NewItems[0]).State == State.Init)) { OnEntitiesChanged(); OnPropertyChanged(() => IsEmpty); } }; DropHandler = new AutocompleteViewModel.DropTargetHandler(this); DragHandler = new AutocompleteViewModel.DragSourceHandler(this); IsDropTargetEnabled = true; IsDragSourceEnabled = true; }
public MeasureAutocomplete(SuggestionsMaker sugMaker, IEnumerable <object> initItems = null) : base(sugMaker, initItems) { this.singleTag = true; this.convertTo = Enumerable.Empty <BlankType>(); ReplaceTagsWith(initItems); }
public QueryBlockAutocomplete(SuggestionsMaker sugMaker, IEnumerable <BlankType> convertTo = null) : base(sugMaker) { this.allowConfidenceToggle = true; this.measureEditorWithCompare = true; this.convertTo = convertTo ?? new[] { BlankType.Word, BlankType.Measure }; ReplaceTagsWith(null); }
public HrEditorAutocomplete(SuggestionsMaker sugMaker, IEnumerable <object> initItems = null) : base(sugMaker, initItems) { this.allowSendToSearch = true; this.allowConfidenceToggle = true; this.convertTo = new[] { BlankType.Word, BlankType.Comment, BlankType.Icd, BlankType.Measure }; ReplaceTagsWith(initItems); }