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)); }
public static void SetFilterPath(DependencyObject d, AutoCompleteFilterPathCollection value) { d.SetValue(FilterPathProperty, value); }