private void OnCollectionViewSourceFilter(object sender, FilterEventArgs e)
 {
     if (AutoComplete.GetImplicitItemsFilter(controlUnderAutocomplete.Control) == ImplicitItemsFilter.Enabled)
     {
         var iho = e.Item as AutoComplete.IHaveAnOpinionOnFilter;
         AutoCompleteFilterPathCollection filterPaths = GetAutoCompleteFilterProperty();
         if (iho != null)
         {
             e.Accepted = iho.Match(controlUnderAutocomplete.Text);
         }
         else if (filterPaths != null)
         {
             Type t = e.Item.GetType();
             foreach (string autoCompleteProperty in filterPaths)
             {
                 PropertyInfo info  = t.GetProperty(autoCompleteProperty);
                 object       value = info.GetValue(e.Item, null);
                 if (TextBoxStartsWith(value))
                 {
                     e.Accepted = true;
                     return;
                 }
             }
             e.Accepted = false;
         }
         else
         {
             e.Accepted = TextBoxStartsWith(e.Item);
         }
     }
     else
     {
         e.Accepted = true;
     }
 }
 public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destinationType)
 {
     if (destinationType == typeof(string))
     {
         AutoCompleteFilterPathCollection c = ( AutoCompleteFilterPathCollection )value;
         return(c.Join());
     }
     return(base.ConvertTo(context, culture, value, destinationType));
 }
Esempio n. 3
0
 public static void SetFilterPath(DependencyObject d, AutoCompleteFilterPathCollection value)
 {
     d.SetValue(FilterPathProperty, value);
 }