2012-04-06 90 views
1

我有一個按鈕定義在我的列表框的DataTemplate裏面。WP7按鈕裏面的ListBox只有「點擊」每隔一個按

<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(),所以我知道它何時觸發。)

任何想法?點擊事件每隔一段時間就會觸發這真的很奇怪。

回答

1

可嘗試以下兩個「解決辦法」:

  1. 在設置焦點回到頁面點擊事件的回調:this.Focus();

  2. 在點擊事件的回調設定ListBoxSelectedItem爲空:myListBox.SelectedItem = null;

我認爲這兩者之一應該工作...

單擊事件回調= EnableDisableButton_Click方法

+0

在事件回調中設置'this.Focus()'工作。謝謝! – Zik 2012-04-07 05:58:06