Я использую MVVM-light для Pushpins на моей карте. Я привязал событие Tapped к команде в моей модели ViewModel. Однако событие не запускается. Все остальные команды и свойства прекрасно связываются. Я также попытался в качестве примера использовать регулярное событие, но оно также не срабатывало.
Моя команда в моей виртуальной машине
private RelayCommand<Check> _showDetailCheckCommand;
public RelayCommand<Check> ShowDetailCheckCommand
{
get
{
Debug.WriteLine("Binded");
return _showDetailCheckCommand ?? (_showDetailCheckCommand = new RelayCommand<Check>((c) =>
{
Debug.WriteLine("Action!");
}));
}
}
В моем XAML
<Page
x:Name="pageRoot"
...
<Maps:MapControl x:Name="Map" IsEnabled="False" Margin="0,8,0,8" MapServiceToken="******" LandmarksVisible="False" PedestrianFeaturesVisible="False" TrafficFlowVisible="True" ZoomLevel="16">
<!-- Incidents -->
<Maps:MapItemsControl ItemsSource="{Binding checks}">
<Maps:MapItemsControl.ItemTemplate>
<DataTemplate>
<Image Tag="{Binding}" Source="{Binding image_path}" Maps:MapControl.Location="{Binding geodata, Converter={StaticResource RoadsmartCoordinatesToGeoPointConverter}}" Maps:MapControl.NormalizedAnchorPoint=".5,.5" >
<interactivity:Interaction.Behaviors>
<core:EventTriggerBehavior EventName="Tapped">
<core:InvokeCommandAction Command="{Binding DataContext.ShowDetailCheckCommand, ElementName=pageRoot}" CommandParameter="{Binding}" />
</core:EventTriggerBehavior>
</interactivity:Interaction.Behaviors>
</Image>
</DataTemplate>
</Maps:MapItemsControl.ItemTemplate>
</Maps:MapItemsControl>
</Maps:MapControl>
Мой журнал вывода говорит: "Binded". Но когда я нажимаю на изображение на карте, "Действие" не выполняется.
Глупо обо мне. У меня было свойство isEnabled
установлено false
.
Это сбивает с толку, потому что все жесты карты работают, но ни один из привязанных элементов управления XAML поверх этого не работает.
Глупая ошибка, но тем не менее она может помочь людям.