单选按钮:用户单击和程序选择之间的差异

时间:2014-01-06 10:54:59

标签: wpf windows windows-store-apps

我有一组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

1 个答案:

答案 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;