2017-03-22 1 views
0

-je utiliser WPF et un combobox en XAML:erreur WPF Référence d'objet non définie à une instance d'un objet

<ComboBox Name="registerDateCboxReportSt" SelectedIndex="0" 
          Height="30" Width="91.478" 
          HorizontalAlignment="Left" 
          VerticalAlignment="Center" 
          Margin="99.323,3,0,3" 
          SelectionChanged="registerDateCboxReportSt_SelectionChanged" > 
          <ComboBoxItem Content="select Date:" Padding="5" /> 
          <ComboBoxItem Content="On" Padding="5" /> 
          <ComboBoxItem Content="Since" Padding="5" /> 
         </ComboBox> 

si l'utilisateur sélectionner « On » d'autres comboboxes qui montrent une date spécifique est activée. et si vous choisissez "Depuis", les autres comboboxes représentant la date de départ et la date de fin seront affichées. code C# en est:

private void registerDateCboxReportSt_SelectionChanged(object sender, SelectionChangedEventArgs e) 
    { 
     switch (registerDateCboxReportSt.SelectedIndex) 
     { 
      case 0 : 
       startDayReportSt.IsEnabled = startMonthReportSt.IsEnabled = startYearReportSt.IsEnabled = false; 
       finishDayReportSt.IsEnabled = finishMonthReportSt.IsEnabled = finishYearReportSt.IsEnabled = false; 
       break; 
      case 1: 
       startDayReportSt.IsEnabled = startMonthReportSt.IsEnabled = startYearReportSt.IsEnabled = true; 
       finishDayReportSt.IsEnabled = finishMonthReportSt.IsEnabled = finishYearReportSt.IsEnabled = false; 
       break; 
      case 2: 
       startDayReportSt.IsEnabled = startMonthReportSt.IsEnabled = startYearReportSt.IsEnabled = true; 
       finishDayReportSt.IsEnabled = finishMonthReportSt.IsEnabled = finishYearReportSt.IsEnabled = true; 
       break; 
     } 
    } 

quand je commence à exécuter l'application, la ligne après "case 0:" provoque une erreur! cette ligne:

startDayReportSt.IsEnabled = startMonthReportSt.IsEnabled = startYearReportSt.IsEnabled = false; 

provoque une erreur! le code d'erreur est:

nullreferenceexception n'a pas été gérée par le code utilisateur.

La référence d'objet n'est pas définie sur une instance d'un objet.

pourquoi cette ligne devrait provoquer une erreur ?!

Répondre

0

Essayez d'utiliser x:Name=".." dans votre XAML au lieu de simplement Name=".."

<ComboBox x:Name="registerDateCboxReportSt" /> 

Faites cela pour tous les éléments dont vous avez besoin dans votre accès à code-behind.

x:Name="startDayReportSt" x:Name="startMonthReportSt" x:Name="startYearReportSt"

etc ...

+0

merci beaucoup – Abolfazl