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