Imports System.Windows.Interactivity
Public Class ScrollIntoViewForListBox
Inherits Behavior(Of ListBox)
'''
''' When Beahvior is attached
'''
Protected Overrides Sub OnAttached()
MyBase.OnAttached()
AddHandler Me.AssociatedObject.SelectionChanged, AddressOf AssociatedObject_SelectionChanged
End Sub
'''
''' On Selection Changed
'''
'''
'''
Private Sub AssociatedObject_SelectionChanged(sender As Object, e As SelectionChangedEventArgs)
If TypeOf sender Is ListBox Then
Dim listBox As ListBox = TryCast(sender, ListBox)
If listBox.SelectedItem IsNot Nothing Then
listBox.Dispatcher.BeginInvoke(DirectCast(Sub()
listBox.UpdateLayout()
If listBox.SelectedItem IsNot Nothing Then
listBox.ScrollIntoView(listBox.SelectedItem)
End If
End Sub, Action))
End If
End If
End Sub
'''
''' When behavior is detached
'''
Protected Overrides Sub OnDetaching()
MyBase.OnDetaching()
RemoveHandler Me.AssociatedObject.SelectionChanged, AddressOf AssociatedObject_SelectionChanged
End Sub
End Class