Выделите элемент в списке в Silverlight 3 - PullRequest
0 голосов
/ 17 апреля 2010

У меня есть приложение silverlight 3 с текстовым полем в главном окне и дочерним окном, в котором есть список всех возможных значений текстового поля.Когда я открываю это дочернее окно, я хочу, чтобы оно прокрутилось до нужного в списке.

Я пытаюсь сделать это с помощью приведенного ниже кода ... используя ScrollIntoView.Он не работал вообще, пока я не добавлю UpdateLayerout ().Однако, похоже, не работает все время.Время от времени он прокручивается, но не до самого предмета, он на несколько пунктов выше, чем должен быть.Список находится в Аккордеоне, и элементы списка используют ItemTemplate \ DataTemplate, не уверен, что это повлияет на что-либо, но думал, что я упомяну об этом.*

То, что я хотел бы, это прокрутить элемент вверху списка .... есть идеи, как к этому?

Спасибо!

for (int index = 0; index < myList.Items.Count; index++) {
        object obj = myList.Items[index];
        var listItem= obj as listItemObject;
        if (listItemObj != null)    {
            if (string.Compare(listItemObj.id, _PastedInId, StringComparison.InvariantCultureIgnoreCase) == 0) {
                selectThisIndex = index;
                scrollToThisItem = obj;
            }
        }
    }
    myList.SelectedIndex = selectThisIndex;
    if (scrollToThisItem != null){
        myList.UpdateLayout();
        myList.ScrollIntoView(scrollToThisItem);
    }

1 Ответ

0 голосов
/ 18 апреля 2010

Рассмотрите возможность использования реализации ItemsControlExtensions из набора инструментов Silverlight, доступного по адресу http://silverlight.codeplex.com/sourcecontrol/network/Show?projectName=Silverlight&changeSetId=47051#637494

У этого есть ScrollIntoView(FrameworkElement element) метод, который может помочь.

...