To pass DataContext
inside header template add:
<phone:PanoramaItem Header={Binding} x:Name="panorama"
You can't access an object in template by name. Use code below to find element by name:
private T FindElementInVisualTree<T>(DependencyObject parentElement, string name) where T : DependencyObject
{
var count = VisualTreeHelper.GetChildrenCount(parentElement);
if (count == 0)
return null;
for (int i = 0; i < count; i++)
{
var child = VisualTreeHelper.GetChild(parentElement, i);
if (child != null && child is FrameworkElement && (child as FrameworkElement).Name.Equals(name))
{
return (T)child;
}
else
{
var result = FindElementInVisualTree<T>(child, name);
if (result != null)
return result;
}
}
return null;
}
And then call:
Map map = FindElementInVisualTree<Map>(panorama, "StationsMapOverview");