Я никогда не понимал, как установить DataContext в XAML, но я заставил себя работать, выполнив следующее:
В XAML я добавил x:Name="listview"
в ListView.
Затем в коде я превратил свойство Map в свойство DependencyProperty
public ObservableCollection<KeyValuePair<string, string>> Map
{
get { return (ObservableCollection<KeyValuePair<string, string>>)GetValue( MapProperty ); }
set { SetValue( MapProperty, value ); }
}
public static DependencyProperty MapProperty = DependencyProperty.Register( "Map",
typeof( ObservableCollection<KeyValuePair<string, string>> ),
typeof( DetailsBox ),
new PropertyMetadata( new ObservableCollection<KeyValuePair<string, string>>( ) ) );
удалено DataContext = this;
из конструктора и добавлено listview.DataContext = Map;
в Initialize после загрузки Map.