Я использую ObservableCollection как ItemSource для моего ListBox компонента:WPF ListBox Прокрутка к нижним
Но поведение контроля не является правильным, как для меня. Дело в том, что у меня есть прокрутка вниз до первого появления в моей коллекции, но не последняя.
Список выборки: 1,1,2,3,4,5,6,7,8,9,11,22,33,1
Когда вы enetr последний 1 Вы компонент свитка до первый 1 :). Это не то, что я хочу.
Просьба сообщить. Здесь код компонента:
public class MyListBox : ListBox
{
protected override void OnItemsChanged(System.Collections.Specialized.NotifyCollectionChangedEventArgs e)
{
base.OnItemsChanged(e);
if (Items.Count > 0)
{
var item = Items[Items.Count - 1];
UpdateLayout();
ScrollIntoView(item);
UpdateLayout();
}
}
}
У вас есть и ObservableCollection? Если ваш последний элемент - 33, он работает? Если так, то что делает, это равное сравнение с ListItems. Попробуйте List , так как это может вести себя по-другому. Если нет, то вам нужно привязать к настраиваемому классу, где вы реализуете GetHashCode и переопределяете Equals, так что первый первый не равен предыдущему 1. –
Paparazzi
Да, если 33 это хорошо работает, потому что раньше не было 33 в коллекции. Я должен использовать ObservableCollection для соответствия изменениям источника данных. Жаль, что привязана к пользовательскому классу вообще :( – alerya