2016-07-26 137 views
1

我已經提出了一個由datePickercomboBox組成的應用程序。 comboBox有一個範圍從0到5的數字列表。當用戶選擇「1」時,我希望啓用我的datePicker,但如果用戶選擇了其他任何我想要的datePicker被禁用。但由於某些原因,此代碼不起作用,並且datePicker始終處於禁用狀態。如何使用「if語句」禁用日期選擇器wpf

我的代碼休耕

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

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'似乎並沒有工作,要麼 –

回答

3

使用在組合框中選擇更改事件。

XAML:

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

代碼:

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

你甚至都不需要'sender'沒有你怎麼寫的。 :) – Donnie

+0

現在應該讀得更好@Donnie –

+0

這工作感謝球員:) –