public bool ContainsListLast() { if (SelectedProperty.Type.IsGenericType && Child != null && Child.SelectedProperty != null) { return(false); } if (SelectedProperty.Type.IsGenericType && Child != null && Child.SelectedProperty == null) { return(true); } if (SelectedProperty.Type.IsGenericType && Child == null) { return(true); } if (Child != null) { return(Child.ContainsListLast()); } return(false); }
public void GetComparers() { if (OrderByCriteria) { if (PropertySelect.Child != null && PropertySelect.Child.SelectedProperty != null && PropertySelect.ContainsList() && !PropertySelect.ContainsListLast()) { ComparerSelect.SelectedIndexChanged += ComparerChanged; Controls.AddRange(new Control[] { ComparerSelect, ValueSelect }); ValueSelect.Items.Clear(); ValueSelect.Text = ""; } else { ComparerSelect.SelectedIndexChanged += null; Controls.Remove(ComparerSelect); Controls.Remove(ValueSelect); } } ComparerSelect.Items.Clear(); Type propertyType = PropertySelect.GetLowestPropertyType(); List <QueryComparer> comparers = SearchProperty.GetComparers(propertyType); if (OrderByCriteria && PropertySelect.Child != null && (propertyType == typeof(int) || propertyType == typeof(double) || propertyType.IsGenericType)) { comparers.AddRange(new List <QueryComparer> { QueryComparer.Min, QueryComparer.Max, QueryComparer.Average, QueryComparer.Sum }); } ComparerSelect.Items.AddRange(comparers.Cast <object>().ToArray()); //foreach (QueryComparer comparer in comparers) // ComparerSelect.Items.Insert(SearchProperty.ComparerToString(comparer)); if (comparers.Count > 0) { ComparerSelect.SelectedIndex = 0; } }