Skip to content

Instantly share code, notes, and snippets.

@samnaseri
Created November 29, 2012 01:32
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save samnaseri/4166148 to your computer and use it in GitHub Desktop.
Save samnaseri/4166148 to your computer and use it in GitHub Desktop.
A simple interactivity behavior to keep the a DataGird's SelectedItem into view
using System.Windows.Controls;
using System.Windows.Interactivity;
public class KeepSelectionInView : Behavior<DataGrid>
{
protected override void OnAttached()
{
base.OnAttached();
this.AssociatedObject.SelectionChanged += DataGrid_SelectionChanged;
}
protected override void OnDetaching()
{
base.OnDetaching();
this.AssociatedObject.SelectionChanged -= DataGrid_SelectionChanged;
}
void DataGrid_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
if (AssociatedObject.SelectedItem != null)
AssociatedObject.ScrollIntoView(AssociatedObject.SelectedItem);
else if (AssociatedObject.SelectedItems != null && AssociatedObject.SelectedItems.Count > 0)
AssociatedObject.ScrollIntoView(AssociatedObject.SelectedItems[0]);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment