Beispiel #1
0
 internal void Attach(FilterControlVm vm)
 {
     if (!attachedFilterControlVmodels.Contains(vm))
     {
         attachedFilterControlVmodels.Add(vm);
     }
 }
Beispiel #2
0
        /// <summary>
        /// Create model for FilterControl, if it is possible in current state.
        /// </summary>
        /// <returns>Instance of FilterControlVm or null.</returns>
        protected virtual FilterControlVm CreateModel()
        {
            FilterControlVm vm = null;

            filterPresenter = Parent == null ? null : FilterPresenter.TryGet(ParentCollection);
            if (filterPresenter != null)
            {
                vm = filterPresenter.TryGetFilterControlVm(Key, FilterInitializersManager);
            }
            return(vm);
        }
 public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
 {
     if (value is FilterControlVm)
     {
         FilterControlVm vm = (FilterControlVm)value;
         return(vm.IsEnable ? System.Windows.Visibility.Visible : System.Windows.Visibility.Collapsed);
     }
     else
     {
         return(System.Windows.Visibility.Collapsed);
     }
 }
Beispiel #4
0
        /// <summary>
        /// Initializes the filter view model.
        /// </summary>
        protected override FilterControlVm CreateViewModel()
        {
            FilterControlVm vm = null;

            this.filterPresenter = this.Parent == null ? null : FiltersManager.TryGetFilterPresenter(this.ParentCollection);
            if (this.filterPresenter != null)
            {
                if (this.Key == null)
                {
                    DataGridColumnHeader columnHeader = this.GetParent <DataGridColumnHeader>();
                    if (columnHeader == null)
                    {
                        return(null);
                    }

                    DataGridColumn column = columnHeader.Column;
                    if (column == null)
                    {
                        return(null);
                    }

                    DataGrid dataGrid = columnHeader.GetParent <DataGrid>();
                    if (dataGrid == null)
                    {
                        return(null);
                    }

                    if (column.DisplayIndex >= dataGrid.Columns.Count)
                    {
                        return(null);
                    }

                    IEnumerable <FilterInitializer> initializers = GetInitializers(column) ?? this.FilterInitializersManager;
                    string key = this.Key ?? this.GetColumnKey(column);
                    vm = this.filterPresenter.TryGetFilterControlVm(key, initializers);
                }
                else
                {
                    IEnumerable <FilterInitializer> initializers = this.FilterInitializersManager;
                    vm = this.filterPresenter.TryGetFilterControlVm(this.Key, initializers);
                }

                if (vm != null)
                {
                    vm.IsEnable = true;
                }
            }

            return(vm);
        }
Beispiel #5
0
        // <summary>
        // Initializes and configures the ViewModel for FilterControl.
        // </summary>
        // <param name="viewKey">A string representing the key for a set of filters.</param>
        // <param name="filterInitializers"> Filter initialisers to determine permissible set of the filters in the FilterControlVm.</param>
        // <returns>Instance of FilterControlVm that was bind to view.</returns>
        public FilterControlVm TryGetFilterControlVm(string viewKey, IEnumerable <FilterInitializer> filterInitializers)
        {
            //string viewKey = view.Key;
            FilterControlVm viewModel = null;

            if (viewKey != null)
            {
                FiltersCollection filtersEntry;
                // Get registered collection by key.
                if (filters.ContainsKey(viewKey))
                {
                    filtersEntry = filters[viewKey];
                }
                else
                {
                    filtersEntry = new FiltersCollection(this);
                    filters.Add(viewKey, filtersEntry);
                }
                filterInitializers = filterInitializers ?? FilterInitializersManager.Default;

                foreach (var initializer in filterInitializers)
                {
                    var    filterKey = initializer.GetType();
                    Filter filter;
                    if (filtersEntry.ContainsKey(filterKey))
                    {
                        filter = filtersEntry[filterKey];
                    }
                    else
                    {
                        filter = initializer.NewFilter(this, viewKey);
                        if (filter != null)
                        {
                            filtersEntry[filterKey] = filter;
                        }
                    }
                    if (filter != null)
                    {
                        viewModel = viewModel ?? new FilterControlVm();
                        viewModel.Add(filter);
                    }
                }
                //view.ItemsSource = viewModel;
            }
            return(viewModel);
        }
        /// <summary>
        ///     Initializes the filter view model.
        /// </summary>
        protected override FilterControlVm CreateModel()
        {
            FilterControlVm vm = null;

            filterPresenter = Parent == null ? null : FilterPresenter.TryGet(ParentCollection);
            if (filterPresenter != null)
            {
                if (Key == null)
                {
                    var columnHeader = this.GetParent <DataGridColumnHeader>();
                    if (columnHeader == null)
                    {
                        return(null);
                    }
                    var column = columnHeader.Column;
                    if (column == null)
                    {
                        return(null);
                    }
                    var dataGrid = columnHeader.GetParent <DataGrid>();
                    if (dataGrid == null)
                    {
                        return(null);
                    }
                    if (column.DisplayIndex >= dataGrid.Columns.Count)
                    {
                        return(null);
                    }
                    IEnumerable <FilterInitializer> initializers = GetInitializers(column) ?? FilterInitializersManager;
                    var key = GetColumnKey(column);
                    vm = filterPresenter.TryGetFilterControlVm(key, initializers);
                }
                else
                {
                    IEnumerable <FilterInitializer> initializers = FilterInitializersManager;
                    vm = filterPresenter.TryGetFilterControlVm(Key, initializers);
                }
                if (vm != null)
                {
                    vm.IsEnable = true;
                }
            }
            return(vm);
        }
Beispiel #7
0
        /// <summary>
        /// Handles changes to the Model property.
        /// </summary>
        private static void OnModelChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
        {
            FilterControl target = (FilterControl)d;

            FilterControlVm oldModel = (FilterControlVm)e.OldValue;

            if (oldModel != null)
            {
                oldModel.Dispose();
                oldModel.StateChanged -= target.OnStateChanged;
                target.ItemsSource     = null;
            }
            FilterControlVm newModel = target.Model;

            if (newModel != null)
            {
                newModel.StateChanged += target.OnStateChanged;
                target.ItemsSource     = newModel;
                target.SetVisualState(newModel.State);
            }
            target.OnModelChanged(newModel);
        }
Beispiel #8
0
 internal void Detach(FilterControlVm vm)
 {
     attachedFilterControlVmodels.Remove(vm);
 }
 public void Detach(FilterControlVm vm)
 {
     ;
 }
Beispiel #10
0
 private void OnStateChanged(FilterControlVm sender, State filterState)
 {
     SetVisualState(filterState);
 }
Beispiel #11
0
 /// <summary>
 /// Provides derived classes an opportunity to handle changes to the Model property.
 /// </summary>
 protected virtual void OnModelChanged(FilterControlVm newModel)
 {
 }