一切都很简单:我有一个ListBoxSelector(app适用于wp7)。项目包括图片和一些文字。项目样式存储在StyleTemplate内部。可以点击图像,其事件就像
<Style x:Key="ProductSearchListViewerItemStyle" TargetType="ListBoxItem">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="ListBoxItem">
<Grid>
<Border BorderThickness="0,0,0,0.5">
<Grid>
<Border Grid.Column="0" Background="Transparent">
<Grid> !!! Image is here
</Grid>
<interactivity:Interaction.Triggers>
<interactivity:EventTrigger EventName="Tap">
<command:EventToCommand
Command="{Binding Source={StaticResource ViewModelLocator}, Path=NavigationViewModel.OnProductSearchListViewerTapImageCommand, Mode=OneWay}"
CommandParameter="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=DataContext}"/>
</interactivity:EventTrigger>
</interactivity:Interaction.Triggers>
</Border>
...and so on...
活动本身:
private void OnProductSearchListViewerTapImage(ProductItem item)
{
if (item == null) return;
MessengerInstance.Send<ProductItem, ShoppingCartViewModel>(item);
}
到目前为止一切顺利。在运行时,一切正常......在95%的情况下。我得到了一个包含正确物品的物品清单,当我按下某个物品的图像时,事件上升,命令被发送,正确的物品被添加到购物车。
BUT。在某些情况下(问题开始,当点击24-25项时),错误的项目被添加到购物车(列表正确呈现)。
这意味着,问题出在Event和Command之间。所以,在EventToCommand中出了点问题。
任何人都有相同的经历或想法吗?
答案 0 :(得分:0)
实际上,我最终将ControlTemplate移动到单独的DataTemplate,而不使用样式。
<DataTemplate x:Key="ProductsListViewerItemTemplate">
<Grid>
****
至少,现在这个bug还没有复制。