private void LoadConditionFilter(XmlReader xr, ColumnFilter cf, Condition cond)
 {
     if (xr.MoveToAttribute("op"))
     {
         cond.Operator = (ConditionOperator) Enum.Parse(typeof (ConditionOperator), xr.Value, true);
     }
     if (xr.MoveToAttribute("val"))
     {
         cond.Parameter = ColumnFilterEditor.ConvertType(xr.Value, cf.DataType, cf.Column.GetCultureInfo());
     }
 }
 private void LoadValueFilter(XmlReader xr, ColumnFilter cf)
 {
     var list = new List<object>();
     while (xr.Read())
     {
         if (xr.NodeType == XmlNodeType.Element && xr.Name == "Value" && xr.MoveToAttribute("val"))
         {
             if (Equals(xr.Value, NullValue.Value.ToString()))
             {
                 list.Add(NullValue.Value);
             }
             else
             {
                 try
                 {
                     Type underlyingType = Nullable.GetUnderlyingType(cf.DataType);
                     object item = Convert.ChangeType(xr.Value,
                         underlyingType ?? cf.DataType, CultureInfo.InvariantCulture);
                     list.Add(item);
                 }
                 catch
                 {
                     list.Add(xr.Value);
                 }
             }
         }
     }
     cf.ValueFilter.Values = list;
 }
 private void LoadConditionFilter(XmlReader xr, ColumnFilter cf)
 {
     while (xr.Read())
     {
         if (xr.NodeType == XmlNodeType.Element)
         {
             if (xr.Name == "ConditionFilter")
             {
                 string attribute = xr.GetAttribute("AndConditions");
                 bool andConditions = true;
                 if (bool.TryParse(attribute, out andConditions))
                 {
                     cf.ConditionFilter.AndConditions = andConditions;
                 }
             }
             if (xr.Name == "Condition1")
             {
                 LoadConditionFilter(xr, cf, cf.ConditionFilter.Condition1);
             }
             if (xr.Name == "Condition2")
             {
                 LoadConditionFilter(xr, cf, cf.ConditionFilter.Condition2);
             }
         }
     }
 }
 private bool IsTextFilter(ColumnFilter filter)
 {
     return filter.ConditionFilter.IsActive && IsTextOperator(filter.ConditionFilter.Condition1.Operator);
 }
 internal void SetFilter(Column column, ColumnFilter filter)
 {
     _filters[column] = filter;
     Apply();
 }
 public ColumnFilter GetColumnFilter(Column column)
 {
     if (!_filters.ContainsKey(column))
     {
         _filters[column] = new ColumnFilter(this, column);
     }
     return _filters[column];
 }
 private FrameworkElement CreateDropDown(ColumnFilter filter)
 {
     Image image = new Image();
     image.Tag = filter;
     image.Stretch = Stretch.None;
     image.HorizontalAlignment = HorizontalAlignment.Center;
     image.VerticalAlignment = VerticalAlignment.Center;
     image.MouseLeftButtonDown += img_MouseLeftButtonDown;
     UpdateGlyphImage(image, false);
     return image;
 }