/// <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); }