public static IEnumerable <SelectionCommandViewModelBase> CreateColumnCommands(this IHasColumns page) { yield return(new DefaultColumnsCommandViewModel(page)); yield return(new AllColumnsCommandViewModel(page)); if (page is IHasColumnModes m) { foreach (var c in m.ModeCommands) { yield return(c); } } yield return(null); foreach (var kv in page.GetFlags()) { var v = ((IConvertible)kv.Key).ToInt64(null); yield return(new FlagColumnCommandViewModel( page, v, kv.Value, isSelected: (page.Columns & v) == v)); } }
public FlagColumnCommandViewModel(IHasColumns page, long value, string title, bool isSelected = false, long unselectValue = 0) : base(title: title, isSelected: isSelected) { Page = page; Value = value; UnselectValue = unselectValue; Invalidate(); Page.PropertyChanged += Page_PropertyChanged; }
private AllColumnsCommandViewModel(IHasColumns page, long allFlags) : base(page, allFlags, SR.SelectAll, isSelected: (page.Columns & allFlags) == allFlags) { _Extensions = page as IHasExtensionColumns; if (_Extensions != null) { OnColumnsChanged(); } }
private DefaultColumnsCommandViewModel(IHasColumns page, long allFlags) : base(page, page.DefaultColumns & allFlags, SR.SelectDefault, isSelected: (page.Columns & page.DefaultColumns & allFlags) == (page.DefaultColumns & allFlags), unselectValue: ~page.DefaultColumns) { _AllFlags = allFlags; _Extensions = page as IHasExtensionColumns; if (_Extensions != null) { OnColumnsChanged(); } }
public DefaultColumnsCommandViewModel(IHasColumns page) : this(page, page.GetFlags().Aggregate(0L, (s, kv) => s | ((IConvertible)kv.Key).ToInt64(null))) { }