YOu have to traversee the visual tree of the element. Here is your initial steps.
privatevoid btnSelect_Click(object sender, RoutedEventArgs e)
{
Button btn = sender as Button;
if (btn != null)
{
ListBoxItem lbi = list.ItemContainerGenerator.ContainerFromItem(btn.DataContext) as ListBoxItem;
// Traverse Visual Tree
}
}
Here is recursive method to traverse visual tree
public T TraverseVisualTree<T>(DependencyObject root) where T : Visual { T control = null; for (int i = 0; i < VisualTreeHelper.GetChildrenCount(root); i++) { var child = VisualTreeHelper.GetChild(root, i); control = child as T; if (control == null) { control = TraverseVisualTree<T>(child); } else { return control; } } return control; }
I wrote few articles on it. Please take a look at
http://zamjad.wordpress.com/2011/01/06/traversing-visual-tree/
http://zamjad.wordpress.com/2011/01/11/traversing-visual-tree-revisited/
http://zamjad.wordpress.com/2011/01/12/traversing-visual-tree-by-name/