在Style中绑定EventToCommand

时间:2013-05-04 22:09:52

标签: windows-phone-7 mvvm-light

我有一个LongListBoxItem样式,每个项目都有图片和描述。因此,应该调用不同的事件,取决于触摸的对象(pic或desc)。我正在使用Mvvmlight。

问题是我在事件案例和事件参数中完全迷失了。我正在尝试不同的活动:


点击事件+ PassEventArgsToCommand =返回GestureEventArgs,不确定我是否能够从那里提取项目ID

SelectedItem事件+ PassEventArgsToCommand =返回SelectionChangedEventArgs,但从不触发(可能是因为事件不是从列表框项目上升,而是从它的childern,border)上升

点击事件+ CommandParameter =“{Binding SelectedItem,ElementName = ProductCategoriesListBox}”=无法从样式中找到Elementname,因为我将多次使用它

SelectedItem事件+ CommandParameter =“{Binding SelectedItem,ElementName = ProductCategoriesListBox}”=嗯,同样的事情


也许我的任务有更好的方法?

1 个答案:

答案 0 :(得分:0)

好的,所以TemplatedParent在这种情况下是救援(第5行)。

    <interactivity:Interaction.Triggers>
        <interactivity:EventTrigger EventName="Tap">
            <command:EventToCommand 
                Command="{Binding Source={StaticResource ViewModelLocator}, Path=NavigationViewModel.OnTapItemCommand, Mode=OneWay}"
                CommandParameter="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=DataContext}"/>
        </interactivity:EventTrigger>
    </interactivity:Interaction.Triggers>

现在可以从样式中访问列表框项目了。