Exemple #1
0
        private void taskGrid_RowStateChanged(object sender, DataGridViewRowStateChangedEventArgs e)
        {
            if (e.StateChanged != DataGridViewElementStates.Selected)
            {
                return;
            }

            if (!_allTasksInProject.Any())
            {
                if (NoTaskSelected != null)
                {
                    var eventArgs = new NoTaskSelectedEventArgs();
                    NoTaskSelected(this, eventArgs);
                }
                return;
            }

            var selectedTask = FindTaskByRowIndex(_allTasksInProject.ToList(), e.Row.Index);

            if (TaskSelected != null)
            {
                var eventArgs = new TaskSelectedEventArgs(selectedTask.Id, selectedTask.Note);
                TaskSelected(this, eventArgs);
            }
        }
Exemple #2
0
 void taskGridControl_NoTaskSelected(object sender, NoTaskSelectedEventArgs e)
 {
     Clear();
 }
Exemple #3
0
        private void PopulateTasksInGridView()
        {
            var allTasksInProject = FindTasksInProject(_selectedProjectId).OrderBy(x => x.IsDone).ToList();

            _allTasksInProject           = new BindingList <TaskInGridView>(allTasksInProject);
            taskGrid.DataSource          = _allTasksInProject;
            taskGrid.AutoGenerateColumns = false;

            // Second time in this method, we need to remove the priority combobox column, because it's added again later
            _gridUtils.RemoveColumn("Priority");
            _gridUtils.RemoveColumn("Id");
            _gridUtils.RemoveColumn("ProjectId");
            _gridUtils.RemoveColumn("Priority");
            _gridUtils.RemoveColumn("Note");

            if (taskGrid.Columns.Contains("Title"))
            {
                taskGrid.Columns["Title"].ReadOnly = true;
            }

            if (taskGrid.Columns.Contains("Deadline"))
            {
                taskGrid.Columns["Deadline"].ReadOnly = true;
            }

            if (taskGrid.Columns.Contains("IsDone"))
            {
                DataGridViewColumn isDoneColumn = taskGrid.Columns["IsDone"];
                isDoneColumn.HeaderText = "Done";
                isDoneColumn.Name       = "Done";
            }

            int indexOfHasNoteColumn;

            if (!taskGrid.Columns.Contains("HasNote"))
            {
                DataGridViewCheckBoxColumn hasNoteColumn = new DataGridViewCheckBoxColumn();
                hasNoteColumn.ReadOnly   = true;
                hasNoteColumn.HeaderText = "Has Note";
                hasNoteColumn.Name       = "HasNote";
                indexOfHasNoteColumn     = taskGrid.Columns.Add(hasNoteColumn);
            }
            else
            {
                var hasNoteColumn = taskGrid.Columns["HasNote"];
                indexOfHasNoteColumn = hasNoteColumn.Index;
            }

            DataGridViewComboBoxColumn priorityColumn = new DataGridViewComboBoxColumn();

            priorityColumn.HeaderText = "Priority";
            priorityColumn.Name       = "Priority";
            var indexOfPriorityColumn = taskGrid.Columns.Add(priorityColumn);

            priorityColumn.DataSource = TaskPriority.GetAll().Select(x => x.DisplayName).ToList();


            if (!_allTasksInProject.Any())
            {
                if (NoTaskSelected != null)
                {
                    var eventArgs = new NoTaskSelectedEventArgs();
                    NoTaskSelected(this, eventArgs);
                }
                return;
            }

            for (int i = 0; i < taskGrid.RowCount; i++)
            {
                var row = taskGrid.Rows[i];
                row.Cells[indexOfHasNoteColumn].Value  = !string.IsNullOrWhiteSpace(_allTasksInProject[i].Note);
                row.Cells[indexOfPriorityColumn].Value = _allTasksInProject[i].Priority;
                var task = (TaskInGridView)row.DataBoundItem;
                if (task != null && task.IsDone)
                {
                    _gridUtils.FadeOut(i);
                }
            }

            var rowToBeSelected = taskGrid.Rows[0];

            rowToBeSelected.Selected = true;
            taskGrid.CurrentCell     = rowToBeSelected.Cells[0];
        }