EventTriggerBehavior Tapped not firing

时间:2015-03-30 14:11:04

标签: c# xaml mvvm mvvm-light behavior

我在地图上使用MVVM-light方法制作了Pushpins。 我已将Tapped事件绑定到我的ViewModel中的命令。 但是,事件未触发。 所有其他命令和属性完美绑定。 我也尝试过使用常规事件,但它也没有开火。

我的VM中的命令

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>

我的输出日志确实说: &#39;绑定&#39; 但是,当我点击地图上的图像时,“动作”就行了起来。没有执行。

1 个答案:

答案 0 :(得分:1)

我的愚蠢。 我将地图属性isEnabled设置为false

这是令人困惑的,因为所有Map手势都有效,但绑定的XAML控件都没有。

愚蠢的错误,但它可能会帮助人们。