Я пытаюсь добавить «Поиск» особенность моего Listbox, который я с помощью связанного приложения ObservableCollection, но я не знаю, как я могу сделать это.C# - Поиск элементов в ObservableCollection
Для моего ObservableCollection:
ObservableCollection<ItemProperties> ItemCollection { get; set; }
public class ItemProperties : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
public ItemProperties() { }
private string m_ID;
public string ID
{
get { return m_ID; }
set
{
m_ID = value;
OnPropertyChanged("ID");
}
}
private string m_Title;
public string Title
{
get { return m_Title; }
set
{
m_Title = value;
OnPropertyChanged("Title");
}
}
protected void OnPropertyChanged(string name)
{
PropertyChangedEventHandler handler = this.PropertyChanged;
if (handler != null)
handler(this, new PropertyChangedEventArgs(name));
}
}
загружаю свои товары в Listbox:
string[] fileNames = isf.GetDirectoryNames("Files/*.*");
ItemCollection = new ObservableCollection<ItemProperties>();
foreach (var Directory in fileNames)
{
// code which reads and loads the text files to string which then is added to the Collection
}
ItemCollection.Add(new ItemProperties { ID = a_ID, Title = a_Title});
IEnumerable<ItemProperties> query = ItemCollection.OrderBy(Dat => Dat.Title);
listBox1.ItemsSource = query;
Теперь у меня есть кнопка, которая позволяет TextBox. Когда TextBox включен и по мере ввода, listBox1 должен показывать только то, что я набрал. Если то, что я набрал, не существует, Listbox не должен показывать элементы. например .:
Как я могу сделать это и есть такая возможность? Я хочу, чтобы это было похоже на поиск приложений Windows Phone.
Delete Метод (с помощью контекстного меню):
var contextMenuOpenedIndex = listBox1.Items.IndexOf((sender as MenuItem).DataContext);
ItemCollection.RemoveAt(contextMenuOpenedIndex);
Когда я нажимаю на кнопку удаления, удаляет другой элемент, сохраняя тот, который я действительно хочу, чтобы удалить.
Сверху моей головы «TextBox» Я думаю, что-то похожее на событие «Изменено», которое срабатывает при каждом вводе. Там вы можете отфильтровать полный список по тому, что находится в коробке. Это должно привести к его изменению по мере ввода. – Omada