2016-07-26 10 views
1

Ich habe eine Anwendung, die aus einer datePicker und einer comboBox besteht gemacht. Die comboBox hat eine Liste von Zahlen von 0 bis 5. Wenn der Benutzer "1" wählt, möchte ich meine datePicker aktiviert sein, aber wenn der Benutzer etwas anderes auswählt, möchte ich die datePicker deaktiviert werden. Aus irgendeinem Grund funktioniert dieser Code nicht und die datePicker ist immer deaktiviert.So deaktivieren Sie einen Datepicker mit einer "if-Anweisung" wpf

Mein Code ist wie

XAML

<ComboBox x:Name="cbxNoClaims" Loaded="cbxNoClaims_Loaded" Grid.Row="13" Grid.Column="1" HorizontalAlignment="Center" VerticalAlignment="Top" Width="120"/> 
<DatePicker Name="dpkClaim1" Loaded="dpkClaim1_Loaded" Grid.Row="13" Grid.Column="2" HorizontalAlignment="Center" VerticalAlignment="Top"/> 

MainWindow.xaml.cs Bricht

private void cbxNoClaims_Loaded(object sender, RoutedEventArgs e) 
{ 
    // ... A List. 
    List<string> claim = new List<string>(); 
    claim.Add("0 "); 
    claim.Add("1"); 
    claim.Add("2"); 
    claim.Add("3"); 
    claim.Add("4"); 
    claim.Add("5"); 


    // ... Get the ComboBox reference. 
    var comboBox = sender as ComboBox; 

    // ... Assign the ItemsSource to the List. 
    comboBox.ItemsSource = claim; 
    comboBox.SelectedIndex = 0; 
} 

private void dpkClaim1_Loaded(object sender, RoutedEventArgs e) 
{ 
    DatePicker datePicker = sender as DatePicker; 
    if ((string)cbxNoClaims.Item== "1") 
    { 
     dpkClaim1.IsEnabled = true; 

    } 
    else dpkClaim1.IsEnabled = false; 

} 
+0

‚' SelectedItem' scheint nicht zu arbeiten entweder –

Antwort

3

Verwenden Sie die Auswahl geänderte Ereignis auf dem Kombinationsfeld.

XAML:

<ComboBox x:Name="cbxNoClaims" SelectionChanged="cbxNoClaims_SelectionChanged" Grid.Row="13" Grid.Column="1" HorizontalAlignment="Center" VerticalAlignment="Top" Width="120"/> 

Code:

private void cbxNoClaims_SelectionChanged(object sender, RoutedEventArgs e) 
{ 
    if (cbxNoClaims.SelectedItem.ToString() == "1") 
    { 
     dpkClaim1.IsEnabled = true; 
    } 
    else 
    { 
     dpkClaim1.IsEnabled = false; 
    } 
} 
+1

Sie brauchen noch nicht einmal 'sender' ohne, wie Sie es geschrieben haben. :) – Donnie

+0

Sollte jetzt besser lesen @Donnie –

+0

Das funktionierte dank Jungs :) –

Verwandte Themen