Saya memiliki aplikasi pengujian yang sangat sederhana hanya untuk bermain-main dengan Windows Phone 7. Saya baru saja menambahkan a TextBoxdan a TextBlockke template UI standar. Satu-satunya kode kustom adalah sebagai berikut:
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";
}
}
The TextBox.TextChangedevent adalah kabel sampai TextBoxChangeddi XAML:
<TextBox Height="72" HorizontalAlignment="Left" Margin="6,37,0,0"
Name="textBox1" Text="" VerticalAlignment="Top"
Width="460" TextChanged="TextBoxChanged" />
Namun, setiap kali saya menekan tombol saat menjalankan emulator (baik keyboard di layar atau keyboard fisik, setelah menekan Jeda untuk mengaktifkan yang terakhir), penghitung akan bertambah dua kali, menampilkan dua baris di TextBlock. Semua yang saya coba menunjukkan bahwa acara tersebut benar-benar terjadi dua kali, dan saya tidak tahu mengapa. Saya telah memverifikasi bahwa itu hanya berlangganan sekali - jika saya berhenti berlangganan di MainPagekonstruktor, tidak ada yang terjadi sama sekali (ke blok teks) ketika teks berubah.
Saya sudah mencoba kode yang setara di aplikasi Silverlight biasa, dan itu tidak terjadi di sana. Saat ini saya tidak memiliki ponsel fisik untuk mereproduksi ini. Saya belum menemukan catatan apa pun tentang ini sebagai masalah yang diketahui di Windows Phone 7.
Adakah yang bisa menjelaskan kesalahan saya, atau haruskah saya melaporkan ini sebagai bug?
EDIT: Untuk mengurangi kemungkinan ini menjadi memiliki dua kontrol teks, saya telah mencoba menghapus TextBlocksepenuhnya, dan mengubah metode TextBoxChanged menjadi hanya kenaikan counter. Saya kemudian menjalankan emulator, mengetik 10 huruf dan kemudian meletakkan breakpoint pada counter++;baris (hanya untuk menghilangkan kemungkinan bahwa membobol debugger menyebabkan masalah) - dan itu ditampilkan countersebagai 20.
EDIT: Saya sekarang sudah bertanya di forum Windows Phone 7 ... kita akan lihat apa yang terjadi.