public ListItemReportColumnFilterViewModel(ListReportColumnFilterViewModel listViewModel, FilterRequestModel filter) : base("Filter", filter) { // Inicializa las propiedades ListViewModel = listViewModel; Filter = filter; // Inicializa el viewModel InitViewModel(); }
public NodeColumnViewModel(BaseTreeViewModel trvTree, IHierarchicalViewModel parent, NodeColumnType columnNodeType, string text, DataSourceColumnModel column) : base(trvTree, parent, text, Explorers.TreeReportingViewModel.NodeType.ConnectionRoot.ToString(), Explorers.TreeReportingViewModel.IconType.Connection.ToString(), column, false, false, MvvmColor.Black) { // Asigna la columna ColumnNodeType = columnNodeType; Column = column; // Asigna las propiedades if (column == null) // ... si no es una columna, es una cabecera { IsBold = true; Foreground = MvvmColor.Red; } else // ... es una columna, le asigna sus propiedades { CanSelect = true; SortOrder = BaseColumnRequestModel.SortOrder.Undefined; } // Asigna los filtros if (column != null && trvTree is TreeQueryReportViewModel tree) { FilterWhere = new ListReportColumnFilterViewModel(tree.ReportViewModel, this); FilterHaving = new ListReportColumnFilterViewModel(tree.ReportViewModel, this); } // Carga el combo LoadComboAggregation(); // Normaliza las propiedades NormalizeProperties(); // Asigna el manejador de eventos PropertyChanged += (sender, args) => { if (args.PropertyName.Equals(nameof(IsChecked)) && Column != null) { NormalizeProperties(); } }; ComboAggregationTypes.PropertyChanged += (sender, args) => { if (args.PropertyName.Equals(nameof(ComboViewModel.SelectedItem)) && Column != null) { NormalizeProperties(); } }; // Asigna los comandos SortOrderCommand = new BaseCommand(_ => UpdateSortOrder(), _ => CanSort) .AddListener(this, nameof(CanSort)); FilterWhereCommand = new BaseCommand(_ => UpdateFilter(true), _ => CanFilterWhere) .AddListener(this, nameof(CanSort)); FilterHavingCommand = new BaseCommand(_ => UpdateFilter(false), _ => CanFilterHaving) .AddListener(this, nameof(CanSort)); }
/// <summary> /// Obtiene los filtros /// </summary> private List <FilterRequestModel> GetFilters(ListReportColumnFilterViewModel filtersViewModel) { List <FilterRequestModel> request = new List <FilterRequestModel>(); // Añade los filtros foreach (ControlItemViewModel item in filtersViewModel.FiltersViewModel) { if (item is ListItemReportColumnFilterViewModel filterViewModel) { request.Add(filterViewModel.Filter); } } // Devuelve los filtros return(request); }