1

リストボックスの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イベントが発生することです。2回目に押すと発火しません。3回目のプレス、発砲。4回目のプレス、発砲しません。もともと私はそれをコマンドにバインドしていましたが、それは同じように動作していました。(イベントハンドラーにDebug.WriteLine()を配置したので、いつ起動するかがわかります。)

何か案は?クリックイベントが1回おきにのみ発生するのは本当に奇妙です。

4

1 に答える 1

1

次の 2 つの「回避策」のいずれかを試してください。

  1. クリック イベントのコールバックで、フォーカスをページに戻します。this.Focus();

  2. クリック イベントのコールバックSelectedItemで、ListBoxを nullに設定します。myListBox.SelectedItem = null;

2つのうちの1つが機能するはずだと思います...

クリックイベントのコールバック =EnableDisableButton_Clickメソッド

于 2012-04-06T23:25:10.497 に答える