我有一组2个单选按钮,我需要知道用户何时点击其中一个按钮。 默认情况下,必须选择其中一个单选按钮(在页面创建时)。
为什么从代码中选择radiobutton时会调用check回调?我该如何区分它们?这让我感到困扰,因为当用户执行操作时,我必须执行Web请求,但是当我在初始时从代码中选择它时,它不能执行任何请求。
private void RadioButton_Checked(object sender, RoutedEventArgs e)
{
Search(ContractTextBox.Text, true);
}
<ItemsControl ItemsSource="{Binding SelectedMainSearchItem.SubLevels}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<Grid Margin="10">
<RadioButton Content="{Binding Name}"
GroupName="ExclusiveGroupL3"
IsChecked="{Binding IsSelected, Mode=TwoWay}"
Checked="RadioButton_Checked"
FontSize="18"/>
</Grid>
</DataTemplate>
</ItemsControl.ItemTemplate
答案 0 :(得分:0)
处理这种情况的常用方法是定义bool
属性以用作“标志”:
private bool isUserSelection = true;
...
private void RadioButton_Checked(object sender, RoutedEventArgs e)
{
if (isUserSelection) Search(ContractTextBox.Text, true);
}
当您以编程方式设置CheckBox
值时,请将标记设置为false
:
isUserSelection = false;
SetCheckBoxValue(true);
isUserSelection = true;