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);
}