BetterExplorer.MainWindow.SetSortingAndGroupingButtons C# (CSharp) Method

SetSortingAndGroupingButtons() private method

Sets up btnSort and btnGroup so they have the correct items after navigating
private SetSortingAndGroupingButtons ( ) : void
return void
    private void SetSortingAndGroupingButtons() {
      btnSort.Items.Clear();
      btnGroup.Items.Clear();

      try {
        foreach (Collumns item in _ShellListView.Collumns.Where(x => x != null)) {
          var lastSortedColumn = _ShellListView.Collumns.FirstOrDefault(w => w.ID == this._ShellListView.LastSortedColumnId);
          if (lastSortedColumn != null) {
            var IsChecked1 = (item.pkey.fmtid == lastSortedColumn.pkey.fmtid) && (item.pkey.pid == lastSortedColumn.pkey.pid);
            btnSort.Items.Add(Utilities.Build_MenuItem(item.Name, item, checkable: true, isChecked: IsChecked1, GroupName: "GR2", onClick: mi_Click));
          }
          var IsCheckable2 = _ShellListView.LastGroupCollumn != null && (item.pkey.fmtid == _ShellListView.LastGroupCollumn.pkey.fmtid) && (item.pkey.pid == _ShellListView.LastGroupCollumn.pkey.pid);
          btnGroup.Items.Add(Utilities.Build_MenuItem(item.Name, item, checkable: true, isChecked: IsCheckable2, GroupName: "GR3", onClick: mig_Click));
        }
      } catch (Exception ex) {
        //FIXME: I disable this message because of strange null after filter
        MessageBox.Show("BetterExplorer had an issue loading the visible columns for the current view. You might not be able to sort or group items.", ex.ToString(), MessageBoxButton.OK, MessageBoxImage.Error);
      }

      btnSort.Items.Add(new Separator() { Focusable = false });
      misa = Utilities.Build_MenuItem(FindResource("miAscending"), checkable: true, GroupName: "GR1", onClick: misa_Click);
      misd = Utilities.Build_MenuItem(FindResource("miDescending"), checkable: true, GroupName: "GR1", onClick: misd_Click);

      if (this._ShellListView.LastSortOrder == WIN.Forms.SortOrder.Ascending)
        misa.IsChecked = true;
      else
        misd.IsChecked = true;

      btnSort.Items.Add(misa);
      btnSort.Items.Add(misd);

      btnGroup.Items.Add(Utilities.Build_MenuItem("(none)", GroupName: "GR3", checkable: true, isChecked: _ShellListView.LastGroupCollumn == null, onClick: misng_Click));
      btnGroup.Items.Add(new Separator());

      misag = Utilities.Build_MenuItem(FindResource("miAscending"), checkable: true, GroupName: "GR4", onClick: misag_Click);
      misdg = Utilities.Build_MenuItem(FindResource("miDescending"), checkable: true, GroupName: "GR4", onClick: misag_Click);

      if (this._ShellListView.LastGroupOrder == WIN.Forms.SortOrder.Ascending)
        misag.IsChecked = true;
      else
        misdg.IsChecked = true;

      btnGroup.Items.Add(misag);
      btnGroup.Items.Add(misdg);
    }
MainWindow