When DataContext is set in XAML, CurrentItem is automatically set and if you have set ImagePath - the root header image will be displayed in the breadcrumb.
If DataContext is set at runtime - the CurrentItem is not internally set properly and the root image is not shown.
The workaround is setting the CurrentItem after setting the DataContext.
For example:
private void Button_Click(object sender, RoutedEventArgs e)
{
this.DataContext = new MainViewModel();
this.breadCrumb.CurrentItem = (this.DataContext as MainViewModel).Root;
}