Windows Phone 7で遊ぶための非常にシンプルなテストアプリがあります。標準のUIテンプレートにa TextBoxとa TextBlockを追加しました。唯一のカスタムコードは次のとおりです。
public partial class MainPage : PhoneApplicationPage
{
    public MainPage()
    {
        InitializeComponent();
    }
    private int counter = 0;
    private void TextBoxChanged(object sender, TextChangedEventArgs e)
    {
        textBlock1.Text += "Text changed " + (counter++) + "\r\n";
    }
}TextBox.TextChangedイベントはまで配線されているTextBoxChangedXAMLで:
<TextBox Height="72" HorizontalAlignment="Left" Margin="6,37,0,0"
         Name="textBox1" Text="" VerticalAlignment="Top"
         Width="460" TextChanged="TextBoxChanged" />ただし、エミュレーターで実行中にキーを押すたびに(画面キーボードまたは物理キーボードのいずれかで、一時停止を押して後者を有効にします)、カウンターを2回インクリメントし、に2行を表示しTextBlockます。私が試したすべては、イベントが本当に2回発生していることを示しており、その理由はわかりません。一度だけサブスクライブされていることを確認しました。MainPageコンストラクターでサブスクライブを解除した場合、テキストが変更されても(テキストブロックに対して)何も起こりません。
通常のSilverlightアプリで同等のコードを試しましたが、そこでは発生しませんでした。現在、これを再現するための物理的な電話はありません。これがWindows Phone 7の既知の問題であるという記録は見つかりませんでした。
誰かが私が間違っていることを説明できますか、それともバグとして報告する必要がありますか?
EDITは:2つのテキストコントロールを持つには、このダウンしている可能性を減らすために、私は削除しようとしたTextBlock、完全に、とまでTextBoxChanged方法を変えるだけインクリメントcounter。次に、エミュレータで実行し、10文字を入力して、にブレークポイントを置きますcounter++;(単にデバッガに侵入すると、問題を引き起こしていることをあらゆる可能性を取り除くために)ライン-そしてそれは示してcounter20通り。
編集:私は今、Windows Phone 7フォーラムで質問しました ...何が起こるかを確認します。