private void GetRowDataGridCell(int rowNo) { DataGridRow rowContainer = FindDataGridControl.GetRow(this, rowNo); foreach (ExtendedTemplateColumn col in this.Columns) { var datagridCell = FindDataGridControl.GetCell(this, rowNo, col.DisplayIndex); if (!FilterHelper.DatagridRows.ContainsKey(col)) { var datagridCollection = new List <DataGridCell>(); datagridCollection.Add(datagridCell); FilterHelper.DatagridRows.Add(col, datagridCollection); } else { FilterHelper.DatagridRows[col].Add(datagridCell); } } }
private void EvaluateDatagridColumn() { DataGridRow rowContainer = FindDataGridControl.GetRow(this, 0); Type itemSourceType = (this.ItemsSource as IEnumerable).AsQueryable().ElementType; foreach (ExtendedTemplateColumn col in this.Columns) { col.FieldNameType = ReflectionHelper.GetPropertyType(col.FieldName, itemSourceType); col.IsNullableBinding = (col.FieldNameType == typeof(string)) || (Nullable.GetUnderlyingType(col.FieldNameType) != null); if (col.IsDefaultBinding) { continue; } var datagridCell = FindDataGridControl.GetCell(this, 0, col.DisplayIndex); var framework = FindControl.FindChild <FrameworkElement>((ContentPresenter)datagridCell.Content, string.Empty); var textBlock = framework as TextBlock; col.IsDefaultBinding = textBlock == null; } }
public ObservableCollection <CheckedListItem> GetDistinctColumnValues() { if (CollectionViewSource.GetDefaultView(CurrentExtendedDatagrid.ItemsSource) == null) { return(null); } var isColumnFiltered = IsCurrenColumnFiltered(); var distinctRowValues = new List <object>(); var dataType = GetDataType(); if (CurrentColumnInfo.Column.IsDefaultBinding) { distinctRowValues.AddRange(CurrentExtendedDatagrid.ItemsSource.SelectExpression <object>( CurrentColumnInfo.Column.FieldName.GetSelectLamdaExpressionPredicate(CurrentColumnInfo.Column.IsNullableBinding), null).Distinct().ToList()); foreach (var rowValue in distinctRowValues) { InsertRowValue(rowValue, dataType.GetDisplayValue(rowValue), dataType); } } else { var datagridCells = DatagridRows.First(c => c.Key == CurrentColumnInfo.Column).Value; foreach (var row in datagridCells) { var textBlock = FindDataGridControl.GetTextBlock(row); var rowValue = textBlock.DataContext.GetPropertyValue(CurrentColumnInfo.Column.FieldName); if (distinctRowValues.Contains(rowValue)) { continue; } distinctRowValues.Add(rowValue); InsertRowValue(rowValue, dataType.GetDisplayValue(textBlock.Text, false), dataType); } } CurrentColumnInfo.RowValues.ToList().ForEach(x => x.ListItem.IsSelected = !isColumnFiltered); if (isColumnFiltered) { var existingFilteredRowValues = FilteredColumnInfo.First(x => x.Column.FieldName == CurrentColumnInfo.Column.FieldName).RowValues; foreach (var existingFilteredRowValue in existingFilteredRowValues) { var listItem = CurrentColumnInfo.RowValues.FirstOrDefault(x => x.DisplayRowValue == existingFilteredRowValue.DisplayRowValue); if (listItem != null) { listItem.ListItem.IsSelected = true; } } } var currentFilteredRowValues = new ObservableCollection <CheckedListItem>(); foreach (var listItem in CurrentColumnInfo.RowValues.Select(x => x.ListItem)) { currentFilteredRowValues.Add(listItem); } return(currentFilteredRowValues); }