internal void Attach(FilterControlVm vm) { if (!attachedFilterControlVmodels.Contains(vm)) { attachedFilterControlVmodels.Add(vm); } }
/// <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); } }
/// <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); }
// <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); }
/// <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); }
internal void Detach(FilterControlVm vm) { attachedFilterControlVmodels.Remove(vm); }
public void Detach(FilterControlVm vm) { ; }
private void OnStateChanged(FilterControlVm sender, State filterState) { SetVisualState(filterState); }
/// <summary> /// Provides derived classes an opportunity to handle changes to the Model property. /// </summary> protected virtual void OnModelChanged(FilterControlVm newModel) { }