2015-01-21 46 views
0

當我執行程序我在構造異常而decalaring在C#中嵌套類

唯一的例外是

類型的第一個機會異常「System.Windows.Markup.XamlParseException得到異常'發生在System.Windows.ni.dll

附加信息:未能分配給屬性'System.Windows.Controls.TextBox.TextChanged'。 [行:56位置:161]

namespace vali2 
{ 
public partial class MainPage : PhoneApplicationPage 
{ 

     public MainPage() 
    { 
     InitializeComponent(); //I get exception here 


    } 

    class validate: MainPage 
    { 
     int in_correct = 0, text_length = 10, phone_length = 10, correct = 0; 
       string firstname_error = "Please enter a valid first name"; 
       string lastname_error = "Please enter a valid last name"; 
       string firstnmeln_error = "First name should be less than 10 letters"; 
       string lastnmeln_error = "Last name should be less than 10 letters"; 
       string gender_error = "Please select your gender"; 
       string contact_error = "Your phone number should contain only numbers"; 
       string contactln_error = "Your contact should contain 10 digits"; 
       string email_error = "Please enter a valid mail address"; 


     public void validatefn() 
      { 
       int Txtlen = ln.Text.Length; 

       if (String.IsNullOrEmpty(ln.Text) || ln.Text.Any(c => Char.IsNumber(c))) 
        { 
         MessageBox.Show(firstname_error); 
         in_correct = 1; 
        } 
       else if (Txtlen > text_length) 
        { 
         MessageBox.Show(firstnmeln_error); 
         in_correct = 1; 
        } 
       else 
         correct = 1; 
         ln.Focus(); 
     } 
     public void validateln() 
     {  
      int Txtlen1 = dob.Text.Length; 
      if (String.IsNullOrEmpty(ln.Text) || ln.Text.Any(c => Char.IsNumber(c))) 
       { 
        MessageBox.Show(lastname_error); 
        in_correct = 1; 

       } 
      else if (Txtlen1 > text_length) 
       { 
        MessageBox.Show(lastnmeln_error); 
        in_correct = 1; 
       } 
      else 
       correct = 1; 
       dob.Focus(); 
     } 

     public void validategender() 
     { 

      if (male.IsChecked == false && female.IsChecked == false) 
      { 
       MessageBox.Show(gender_error); 
       in_correct = 1; 
      } 

      correct = 1; 
     } 
     public void validatecontact() 
     { 
      Regex regex = new Regex("^[0-9]*$"); 
      int Txtlen3 = contact.Text.Length; 
      if (!regex.IsMatch(contact.Text)) 
      { 
       MessageBox.Show(contact_error); 
       in_correct = 1; 
      } 
      else if (Txtlen3 != phone_length) 
      { 
       MessageBox.Show(contactln_error); 
       in_correct = 1; 
      } 
      else 
       correct = 1; 
      contact.Focus(); 
     } 

     public void validate_email() 
     { 
      Regex pattern = new Regex("^([0-9a-zA-Z]([-\\.\\w]*[0-9a-zA-Z])*@([0-9a-zA-Z][-\\w]*[0-9a-zA-Z]\\.)+[a-zA-Z]{2,9})$"); 

      if (!pattern.IsMatch(email.Text)) 
      { 
       MessageBox.Show(email_error); 
       in_correct = 1; 
      } 
      else 
       correct = 1; 

      email.Focus(); 
     } 


     // if ((String.IsNullOrEmpty(ln.Text) || ln.Text.Any(c => Char.IsNumber(c)) && Txtlen > 10)&& 
     //   (male.IsChecked == true || female.IsChecked == true) && (regex.IsMatch(contact.Text) && Txtlen3 < 10) && pattern.IsMatch(email.Text)) 

     public void iso() 
     { 
      IsolatedStorageSettings Setting = IsolatedStorageSettings.ApplicationSettings; 
      Setting["text1"] = ln.Text; 
      Setting["text2"] = dob.Text; 
      Setting["text3"] = contact.Text; 
      Setting["text4"] = email.Text; 


      if (correct == 1 && in_correct == 0) 
      { 
       NavigationService.Navigate(new Uri("/Page1.xaml", UriKind.Relative)); 
      } 


     } 
} 

我不得不觸發下面的代碼校驗類

public void save_Click(object sender, RoutedEventArgs e) 
    { 
     validate vali = new validate(); 
     vali.validatefn(); 
     vali.validateln(); 
     vali.validategender(); 
     vali.validatecontact(); 
     vali.validate_email(); 
     vali.iso(); 
    } 
+0

你有沒有內的InitializeComponent看着代碼(刪除你的文字更改事件)? – 2015-01-21 05:38:57

+1

你能告訴我們xaml嗎? – luxas 2015-01-21 05:38:57

+0

如何觸發驗證? – qamar 2015-01-21 05:38:59

回答

0

有你的XAML文件中聲明文本已經分配給textchange事件請仔細查看並刪除任何與您的文本框簽署的不需要的事件

例如

<TextBox x:Name="xyz" TextChanged="something here remove this event if not using" Text=""/> 

,如果你想不想,而不是你的代碼添加相同的事件背後的名字,希望這能解決你的問題