Ejemplo n.º 1
0
    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));
        }
    }
Ejemplo n.º 2
0
 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;
 }
Ejemplo n.º 3
0
 private AllColumnsCommandViewModel(IHasColumns page, long allFlags)
     : base(page, allFlags, SR.SelectAll, isSelected: (page.Columns & allFlags) == allFlags)
 {
     _Extensions = page as IHasExtensionColumns;
     if (_Extensions != null)
     {
         OnColumnsChanged();
     }
 }
Ejemplo n.º 4
0
 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();
     }
 }
Ejemplo n.º 5
0
 public DefaultColumnsCommandViewModel(IHasColumns page)
     : this(page, page.GetFlags().Aggregate(0L, (s, kv) => s | ((IConvertible)kv.Key).ToInt64(null)))
 {
 }