Как прокручивать DataGrid непрерывно? - PullRequest
2 голосов
/ 22 февраля 2011

Мне нужно непрерывно прокручивать DataGrid, чтобы он каждую секунду (например) перемещался в следующую строку, а по достижении конца переходил к первому элементу. Пожалуйста, предложите лучший способ решения этой задачи.

1 Ответ

3 голосов
/ 22 февраля 2011

вы можете использовать Диспетчер, и каждую секунду вы будете считать выбранный индекс.Примерно так:

  private int selectedIndex;
            public int SelectedIndex
            {
                get { return selectedIndex; }
                set
                {
                    selectedIndex = value;
                    NotifyPropertyChanged("SelectedIndex");
                }
            }

            private void BuildDispatcher()
            {
                DispatcherTimer dispatcherTimer = new DispatcherTimer();
                dispatcherTimer.Interval = TimeSpan.FromSeconds(1);
                dispatcherTimer.Tick += DispatcherTimerTick;
                dispatcherTimer.Start();
            }

            void DispatcherTimerTick(object sender, EventArgs e)
            {
                if((SelectedIndex + 1) > MyCollection.Count)
                {
                    SelectedIndex = 0;
                }else
                {
                    SelectedIndex++;
                }
//EDIT!
               MyDataGrid.SelectedIndex = SelectedIndex;
                MyDataGrid.ScrollIntoView(MyDataGrid.SelectedItem, MyDataGrid.Columns[0]);
            }

РЕДАКТИРОВАТЬ

Выбранный индекс установлен здесь в коде, вы также можете привязать его и сделать ScrollIntoView в измененном выделенииобработчик.

BR,

TJ

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