public GrassCommandViewModel(GrassCommand cmd)
 {
     GrassCommand     = cmd;
     CommonParameters =
         new ObservableCollection <IParameter>(cmd.Parameters.Where(p => !p.IsAdvancedParameter).ToList());
     AdvancedParameters =
         new ObservableCollection <IParameter>(cmd.Parameters.Where(p => p.IsAdvancedParameter).ToList());
     ;
 }
        public MainWindow()
        {
            InitializeComponent();
            var descriptionFilesDir = @"C:\Users\Administrator\Desktop\description";
            var files = Directory.GetFiles(descriptionFilesDir, "*.txt");
            List <GrassCommand> commands = new List <GrassCommand>();

            foreach (var file in files)
            {
                commands.Add(new GrassCommand(file));
            }

            GrassCommand = commands.First(p => p.Parameters.Any(t => t is QgsProcessingParameterEnum && (t as QgsProcessingParameterEnum).AllowMultiple));
            var groups = commands.GroupBy(t => t.Group);

            foreach (var g in groups)
            {
                Console.WriteLine($"{g.Key}");
                foreach (var c in g)
                {
                    Console.WriteLine($"{g.Key}:{c.Name}\t{c.Description}");
                }
            }
        }
 public GrassCommandView(GrassCommand command)
 {
     InitializeComponent();
     this.DataContext = new GrassCommandViewModel(command);
 }