protected virtual void HandleViewModelPropertyChanged(object sender, PropertyChangedEventArgs e) { if (e.PropertyName == "SortType") { /* Hack to make it actually resort */ sort?.SetSortFunc(COL_DATA, HandleSort); } if (e.PropertyName == "FilterText") { filter?.Refilter(); } if (e.PropertyName == "Collection_" + nameof(viewModel.Selection)) { //Sincronization of the first external selection if (ViewModel.Selection.Count == 1 && Selection.CountSelectedRows() == 0) { foreach (TreeIter element in dictionaryStore[ViewModel.Selection.FirstOrDefault()]) { TreeIter externalSelected = element; if (filter != null) { externalSelected = filter.ConvertChildIterToIter(externalSelected); externalSelected = sort.ConvertChildIterToIter(externalSelected); } Selection.SelectIter(externalSelected); } } } }
void NewUserTaskClicked(object obj, EventArgs e) { TaskListEntry task = new TaskListEntry(); task.WorkspaceObject = IdeApp.ProjectOperations.CurrentSelectedWorkspaceItem; updating = true; TaskService.UserTasks.Add(task); updating = false; TreeIter iter = store.AppendValues(GettextCatalog.GetString(Enum.GetName(typeof(TaskPriority), task.Priority)), task.Completed, task.Description, task, GetColorByPriority(task.Priority), task.Completed ? (int)Pango.Weight.Light : (int)Pango.Weight.Bold); view.Selection.SelectIter(sortModel.ConvertChildIterToIter(iter)); TreePath sortedPath = sortModel.ConvertChildPathToPath(store.GetPath(iter)); view.ScrollToCell(sortedPath, view.Columns[(int)Columns.Description], true, 0, 0); view.SetCursorOnCell(sortedPath, view.Columns[(int)Columns.Description], cellRendDesc, true); TaskService.SaveUserTasks(task.WorkspaceObject); }