public IFilter GetFilter(BindingExpression be, DataGrid dg) { Type t = be.ResolvedSource.GetType(); String typeName = t.GetProperty(be.ResolvedSourcePropertyName).GetValue(be.ResolvedSource).GetType().ToString(); IFilter filter= null; switch (typeName) { case "int": break; case "string": break; case "DateTime": break; default: filter = new TextFilter(); break; } filter.Fill(be, dg); return filter; }