Biraz daha karmaşık bir şey yapmaya çalışırken, tam olarak anlamadığım bir davranışla karşılaştım.TextChanged Events - Neden bu sonsuz bir döngü ile sonuçlanmaz?
MetinChanged olayını işlemek üzere aşağıdaki kodu varsayalım. Olay nihai metin üzerinde (s '+' iki ekleme) iki kez takıldı sadece A + olmak görüntülenen alma içinde
private void textChanged(object sender, TextChangedEventArgs e)
{
TextBox current = sender as TextBox;
current.Text = current.Text + "+";
}
Şimdi, metin kutusuna bir karakter (diyelim ki, A) yazarak sonuçlanacaktır.
Benim iki sorumğum, neden olayın iki katı oldu? Ve neden sadece olay boyunca ilk koşmak aslında metin kutusunun metnini ayarlıyor?
Şimdiden teşekkürler!
neden biraz mantıklı gibi görünen bir soru var 4 dakikadan kısa sürede 3 upvotes? Anlamadım .... –
... 5 oya kadar çıktı ve sonra 3'e geri döndü? hmmmmm ... –
TextBox.Text değiştiğinde TextBox.TextChanged olay ortaya çıkar. Bununla birlikte, örnek kod, bu bildirim sırasında metni değiştirir ve TextChanged'in daha fazla yükseltilmesiyle sonuçlanır. Bu da, yeni bir Metin değişikliği ile sonuçlanacak ... -> Sonsuz özyineleme.
Bu özel durumun TextBox sınıfı tarafından açıkça ele alındığını bilmiyordum - açıklanan etki oluşmayacak. Bunun yerine, TextChanged sadece bir kez yükseltilecektir. Bu sorudan bir şeyler öğrendim ve bu yüzden onu reddettim. – Matthias