C# wpf用户控制单选按钮预选

C# wpf用户控制单选按钮预选,c#,wpf,radio-button,ischecked,C#,Wpf,Radio Button,Ischecked,我有一个非常简单的用户控件(visifire图表+日期选择器和一些单选按钮来控制过滤等): 仅检查myControl2上的按钮,而在myControl1上未选中组中的所有按钮 你知道这是什么原因吗 是的,这是所有控件共享的组名。。。谢谢Aran我收到了你的代码,把它放在一个新项目的主窗口上。第一个按钮被选中了 单选按钮有一些错误,首先,如果你点击它们,它们会失去绑定。我曾经有过您描述的在表单之间共享组名的行为,就像您描述的那样。我如何解决这些问题是分别绑定每个单选按钮并自己处理选择逻辑。(如果

我有一个非常简单的用户控件(visifire图表+日期选择器和一些单选按钮来控制过滤等):

仅检查
myControl2
上的按钮,而在
myControl1
上未选中组中的所有按钮

你知道这是什么原因吗



是的,这是所有控件共享的组名。。。谢谢Aran

我收到了你的代码,把它放在一个新项目的主窗口上。第一个按钮被选中了

单选按钮有一些错误,首先,如果你点击它们,它们会失去绑定。我曾经有过您描述的在表单之间共享组名的行为,就像您描述的那样。我如何解决这些问题是分别绑定每个单选按钮并自己处理选择逻辑。(如果选择了一个,则将“组”中其他绑定的属性设置为false)


我希望它在下一版本中得到修复。但目前我将每个单选按钮单独绑定,不使用组名。

为什么表单上只能选中一个单选按钮,这与组名的范围有关

当我尝试使用两个具有单选按钮且未指定GroupName的用户控件实例时,单选按钮效果的范围仅限于用户控件内的组框

为用户控件中的单选按钮指定相同的GroupName时,这意味着窗口中的所有单选按钮都具有相同的GroupName并包含在同一组中。一次只能检查整个窗口组中的一个按钮


答案是从单选按钮中删除GroupName属性,并让GroupBox的自然分组生效。

如果要将两个单选按钮放在不同的容器中(例如StackPanel),但仍希望对它们进行分组(即一次只选择一个),该怎么办?
<GroupBox Header="Scale" Width="159" HorizontalAlignment="Left" Margin="10,47,0,0"
          Height="38" VerticalAlignment="Top" Name="scalingBox">
    <Canvas Height="16">
        <RadioButton Name="scaleDays" Content="Days" GroupName="g2" Width="47"
                     IsChecked="True" Checked="scale_Change"/>
        <RadioButton Name="scaleHours" Content="Hours" GroupName="g2" Canvas.Left="60"
                     Width="59" Checked="scale_Change"/>
    </Canvas>
</GroupBox>
myControl1.SetDefaultScale();
myControl2.SetDefaultScale();