2016-03-31 19 views
-3

Aşağıdaki kodlamayı, bir çift if deyimine adım atmaya çalıştığım var, ancak etiket içeriğimin 0 olarak ayarlanmasıyla ilgili bir sorunum var;Etiket içeriği sıfır olarak ayarlanamıyor

Object reference not set to an instance of an object.

anlamıyorum:

private void UnderRunBumper() 
{ 
    lblGVMAmount.Content = 0; //Issue here 
    if (Convert.ToInt32(txtExternalLength.Text) >= 6000) 
     lblUnderRunBumper.Content = "Under-Run Bumper"; 

    else if (Convert.ToInt32(lblGVMAmount.Content.ToString()) >= 8000) 
     lblUnderRunBumper.Content = "Under-Run Bumper"; 

    else if (cmbBodyType.SelectedIndex == 6 || cmbBodyType.SelectedIndex == 7 || cmbBodyType.SelectedIndex == 8 || cmbBodyType.SelectedIndex == 9 || cmbBodyType.SelectedIndex == 10) 
     lblUnderRunBumper.Content = "Under-Run Bumper"; 
    else lblUnderRunBumper.Content = ""; 
} 

hatası alıyorum. Etiketimin değerini neden 0 değerine ayarlayamıyorum?

+0

neden gönderiyorsunuz [6 saatten aynı soru daha erken] (http://stackoverflow.com/questions/36337084/setting-label-content-causes-issues) – MethodMan

+0

lblGVMAmount boş mı İçerik özelliğini 0 olarak ayarladınız mı? –

+0

@ MADsc13nce Evet öyle :) – CareTaker22

cevap

1

WPF uygulamasında (veya winform'larda), UserControl veya Penceresi kendisini InitializeComponent adlı aramayı kullanarak oluşturur, bu da arka arkaya kodun yapıcısına eklenir.

Bu çağrı, görünümünüzü ilklendiren şeydir ve üzerindeki nesneleri başlatır. Bu yöntem tamamlanmadan önce UI denetimlerine dokunmaya çalışmayın.

E.g. Eğer çalıştığınızda

public partial class MyView : UserControl 
{ 
    public MyView() 
    { 
     var x = myButton; //<Button Name="myButton" /> in xaml 
          // x is null 

     InitializeComponent(); 

     x = myButton; //x is valid 

    } 
} 
+0

Cevap ve açıklama için teşekkürler! : D Sorunu buldum ama neden olduğunu bilmiyorum. Bir Textbox'ın TextChanged olayında 'UnderRunBumper()' yöntemini kullanıyorum ve bu sebepten dolayı çöküme neden olan budur – CareTaker22

+1

Belki de etiket, başlatılmadan önce 'InitializeComponent 'çağrısı sırasında değiştirildi. Sadece spekülasyon. Çağrı yığını kontrol et ve bilirsin. Bu, paha biçilmez hata ayıklama becerilerini öğrenmek için iyi bir fırsattır. – Jonesopolis

+0

Bence haklısınız. Bana mantıklı gelen tek açıklama bu. Ama yardım için teşekkürler ve burada yorum yapan bazı peep'ler gibi olumsuz olmamak için. – CareTaker22

İlgili konular