我在DataTemplate中为我的列表框定义了一个按钮。
<phone:PhoneApplicationPage.Resources>
<DataTemplate x:Key="ListTemplate">
<Grid Margin="12,12,24,12">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Button Grid.Column="0" Name="EnableDisableButton"
Click="EnableDisableButton_Click"
BorderBrush="Transparent">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Image Grid.Row="0" Source="\Images\img.dark.png" Width="48" Height="48" Visibility="{StaticResource PhoneDarkThemeVisibility}" />
<Image Grid.Row="0" Source="\Images\img.light.png" Width="48" Height="48" Visibility="{StaticResource PhoneLightThemeVisibility}" />
<Rectangle Grid.Row="1" Width="48" Height="8" Fill="{Binding CurrentColor}" RadiusX="4" RadiusY="4" />
</Grid>
</Button>
<Grid Grid.Column="1">
<... more stuff here ...>
</Grid>
</Grid>
</DataTemplate>
</phone:PhoneApplicationPage.Resources>
我所看到的是,当我第一次按下按钮时,Click事件会触发。我第二次按它,它不会发射。第三次按,发射。第四次按,不开火。等等。最初我把它绑定到命令但是行为方式相同。 (我在事件处理程序中放了一个Debug.WriteLine(),所以我知道它何时触发。)
有什么想法吗?奇怪的是,点击事件每隔一段时间才会触发。
答案 0 :(得分:1)
尝试以下两个“解决方法”:
在您的点击事件回调中,将焦点设置回页面:this.Focus();
在点击事件回调中,将SelectedItem
的{{1}}设置为空:ListBox
我认为其中一个应该有用......
点击事件回调= myListBox.SelectedItem = null;
方法