C # Прокрутить до верхней части списка - PullRequest
10 голосов
/ 22 февраля 2011

Я видел много постов, в которых показано, как прокрутить до нижнего элемента ListBox, но не могу понять, как выполнить автоматическую прокрутку до верхней части списка.Если я прокручиваю свой список вниз, а затем использую функцию фильтра, список останется на той позиции, до которой вы прокрутились, поэтому пользователь может не увидеть результаты, которые находятся выше, где они прокручиваются до.

Я пытался использовать listbox.ScrollIntoView, но не могу получить правильную функцию.это контекст того, где это будет ... (комментируемая часть):

private void filter_Click(object sender, RoutedEventArgs e)
{
    string filterString = textBox1.Text;
    XElement _xml = XElement.Load("1/1.xml");
    {
        results.Items.Clear();
        foreach (XElement value in _xml.Elements("Operators").Elements("Operator"))
        {
            1Item _item = new 1Item();
            _item.TradingName = value.Element("TradingName").Value;

            if (_item.Town.IndexOf(filterString, 0, StringComparison.CurrentCultureIgnoreCase) != -1)
            {
                results.Items.Add(_item);
                // add scroll function here
            }
        }
    } 
}

Большое спасибо.

Ответы [ 2 ]

25 голосов
/ 23 февраля 2011
if(results.Items.Count > 0)
    results.ScrollIntoView(results.Items[0]);
0 голосов
/ 13 апреля 2016

ScrollIntoView у меня не сработало, но это сработало:

VisualTreeHelperEx.FindDescendantByType<ScrollViewer>(YourListView)?.ScrollToTop();

Для получения ScrollViewer используется Extended WPF Toolkit , но вы, конечно, можете это сделатьнапример, этот ответ .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...