вы можете использовать Диспетчер, и каждую секунду вы будете считать выбранный индекс.Примерно так:
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