我制作了一个包含datePicker
和comboBox
的应用程序。 comboBox
有一个数字列表,范围从 0 到 5。当用户选择“1”时,我希望启用我的 datePicker
,但如果用户选择其他任何内容,我想要禁用 datePicker
。但是由于某些原因,此代码不起作用,datePicker
始终处于禁用状态。
我的代码是休闲的
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"/>
主窗口.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;
}
最佳答案
在组合框上使用选择更改事件。
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;
}
}
关于c# - 如何使用 "if statement"wpf 禁用日期选择器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38600783/