Exemple #1
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);
        }