У меня есть прикрепленное поведение, которое используется в списке, он должен автоматически выбирать первый элемент в списке, если список содержит только один элемент.
Единственный найденный мной способ - перехватить список.когда список изменяется, это использовать событие collectionChanged элемента listbox:
private static void ListenToItemsCollectionChange(ListBox listBox)
{
var collection = (INotifyCollectionChanged)listBox.Items;
collection.CollectionChanged += (sender, args) => SelectAndSetFocusToFirstElement(listBox);
}
Проблема сейчас в том, что нет способа отписаться от события, что потенциально приводит к множественным вызовам SelectAndSetFocusToFirstelement( )
.
Обычное решение этой проблемы - не использовать лямбды.Но тогда я потерял бы свой список, который мне нужен для выбора первого элемента.
Любые предложения о том, как это можно решить?
Полный код