我在LongListSelector
:
<local:SearchTemplateSelector.LoadMoreTemplate>
<DataTemplate>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<TextBlock Text="Load more..." FontSize="30" Foreground="White" TextWrapping="Wrap" Grid.Row="0"
HorizontalAlignment="Center" VerticalAlignment="Center" Margin="0,35"/>
<Rectangle Height="1" HorizontalAlignment="Stretch" VerticalAlignment="Top" Fill="White" Grid.Row="1" Opacity="0.3"/>
</Grid>
</DataTemplate>
</local:SearchTemplateSelector.LoadMoreTemplate>
这是LongListSelector
:
<Controls:LongListSelector x:Name="searchList" Margin="0,0,0,0" Background="Black" SelectionChanged="DidPressSelectSearchList"
HorizontalContentAlignment="Stretch" KeyDown="UserPressEnterKeyBoard" Grid.Row="1">
<Controls:LongListSelector.ItemTemplate>
<DataTemplate>
<local:SearchTemplateSelector Content="{Binding}" HorizontalContentAlignment="Stretch">
我有一个问题,当我在列表中按此行时,DidPressSelectSearchList
仅在我按下TextBlock
时才会调用,如果我按下行上的其他位置则不会触发。
知道怎么解决吗?
编辑我试试这个:
<local:SearchTemplateSelector Content="{Binding}" HorizontalContentAlignment="Stretch" Background="Transparent">
它仍然无法工作。
答案 0 :(得分:1)
我遇到了像你这样的问题(LongListSelector error)。
我试图弄清楚如何 解决它,但我找不到解决方案。我把图片添加到了 更清楚地描述问题。蓝色框(图片上)是 点击事件提升时的区域,红色框是什么时候没有的区域 当你敲击那里时,就会发生当我使用Listbox而不是使用 LongListSelector按预期正常工作。
但我尝试了 Silver Solver ,我觉得这对我很有用。 我想,你这么简单就犯了错误。
请注意<Grid>
元素中的此属性 Background =“Transparent”,该元素始终位于<DataTemplate>
和<toolkit:LongListMultiSelector.ItemTemplate>
内(代码位于下方)。
我认为您遇到了问题,因为您应该为<Grid>
设置<Controls:LongListSelector.ItemTemplate>
元素,然后将 Background =“Transparent”设置为<Grid>
元素。然后你可以把<Grid>
元素放在你想要的任何内容中。您还可以为Tap="Grid_Tap"
元素添加事件<Grid>
,这样只要您在<Grid>
元素区域内点击它就会触发。
这是我的代码示例,请尝试:
<toolkit:LongListMultiSelector
x:Name="LongListMultiSelector"
Margin="0,0,0,0"
ItemsSource="{Binding}"
SelectionChanged="SelectionChanged"
IsSelectionEnabledChanged="IsSelectionEnabledChanged"
EnforceIsSelectionEnabled="False"
>
<toolkit:LongListMultiSelector.ItemTemplate>
<DataTemplate>
<Grid Margin="0,0,0,17"
Tap="Grid_Tap"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
Background="Transparent">
<TextBlock Text="{Binding Text}"
TextWrapping="NoWrap"
Style="{StaticResource PhoneTextLargeStyle}"
HorizontalAlignment="Left"
/>
</Grid>
</DataTemplate>
</toolkit:LongListMultiSelector.ItemTemplate>
P.S。 Silver Solver 非常感谢,很抱歉,但由于声誉不佳,我无法提高您的声誉。
答案 1 :(得分:0)
确保ItemTemplate中的根元素具有背景设置,否则它不会记录点击次数。
<DataTemplate>
<local:SearchTemplateSelector Background="Transparent"...
如果您的选择器没有Background属性,只需将其包装在Grid中。