CalDavSynchronizer.Ui.Options.SelectResourceForm.SetupFolderSelectionColumns C# (CSharp) Метод

SetupFolderSelectionColumns() приватный статический Метод

private static SetupFolderSelectionColumns ( System.Windows.Forms.DataGridView dataGridView, IOptionTasks optionTasks ) : void
dataGridView System.Windows.Forms.DataGridView
optionTasks IOptionTasks
Результат void
    private static void SetupFolderSelectionColumns (DataGridView dataGridView, IOptionTasks optionTasks, params OlItemType[] allowedFolderType)
    {
      var folderColumn = new DataGridViewTextBoxColumn();
      folderColumn.HeaderText = "Selected Outlook Folder";
      folderColumn.AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
      dataGridView.Columns.Add (folderColumn);

      var selectFolderColumn = new DataGridViewButtonColumn();
      selectFolderColumn.UseColumnTextForButtonValue = true;
      selectFolderColumn.Text = "...";
      selectFolderColumn.AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells;
      dataGridView.Columns.Add (selectFolderColumn);

      var removeFolderColumn = new DataGridViewButtonColumn();
      removeFolderColumn.UseColumnTextForButtonValue = true;
      removeFolderColumn.Text = "x";
      removeFolderColumn.AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells;
      dataGridView.Columns.Add (removeFolderColumn);

      dataGridView.CellContentClick += (sender, e) =>
      {
        var column = dataGridView.Columns[e.ColumnIndex];
        var row = dataGridView.Rows[e.RowIndex];
        var viewModel = (ResourceDataViewModelBase) row.DataBoundItem;
        var folderCell = row.Cells[folderColumn.Index];

        if (column == selectFolderColumn)
        {
          var folder = optionTasks.PickFolderOrNull();
          if (folder != null)
          {
            if (Array.IndexOf (allowedFolderType, folder.DefaultItemType) == -1)
            {
              MessageBox.Show ($"Folder has to have item type '{String.Join (", ", allowedFolderType)}'.", "Select folder", MessageBoxButtons.OK, MessageBoxIcon.Error);
              return;
            }

            folderCell.Value = folder.Name;
            viewModel.SelectedFolder = new FolderDescriptor (folder.EntryId, folder.StoreId);
          }
        }
        else if (column == removeFolderColumn)
        {
          viewModel.SelectedFolder = null;
          folderCell.Value = null;
        }
      };
    }