这里简单的问题。 非常简单的代码。
我有一个复选框,我也有一个组合框。
基本上,只要选中复选框或未选中复选框,组合框的所选项目就会发生变化。现在情况不太好。
当它从uncheked转到checked时有效,但是当我取消选中它时,组合框值保持不变。
复选框代码:
private void linked_Checked(object sender, RoutedEventArgs e)
{
if (linked.IsChecked == true)
{
Chained.SelectedIndex = 0;
}
if (linked.IsChecked == false)
{
Chained.SelectedIndex = 1;
}
}
Combobox代码:
<ComboBox x:Name="Chained" Text="{Binding Chained, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" Margin="128,69,132,-92" Grid.Row="15" Visibility="Visible" SelectionChanged="Chained_SelectionChanged" >
<ComboBoxItem Content="True"/>
<ComboBoxItem Content="False"/>
</ComboBox>
这应该是非常直接的吗?那我哪里错了? 如果在xaml中有一种方法可以做到这一点,那么我也是所有的耳朵。
答案 0 :(得分:1)
将其置于未经检查的事件
中private void linked_UnChecked(object sender, RoutedEventArgs e)
{
if (linked.IsChecked == false)
{
Chained.SelectedIndex = 1;
}
}
答案 1 :(得分:0)
原因是当触发checked事件时,状态尚未更改,并且在设置新值之前发生这种情况。这意味着当事件被触发时,您仍然可以获得旧值。所以我总能找到更好的CheckStateChanged事件。因为检查状态更改时会触发此事件。所以你可以说这样的话。
private void checkBox1_CheckStateChanged(object sender, EventArgs e)
{
if (linked.CheckState == CheckState.Checked){
Chained.SelectedIndex = 0;
}
}