如何判断StackPanel中RadioButton组是否有选项被选中?
你这段代码里的FirstOrDefault会在没有任何RadioButton被选中的时候返回null,这时候直接访问programme.IsChecked必然触发空引用错误——哪怕你后来加了programme.IsChecked != null也没用,因为programme本身就是null,连访问属性的资格都没有。
正确写法示例
方式一:先判断对象是否存在
var programme = programm_wahl.Children.OfType<RadioButton>().FirstOrDefault(r => r.IsChecked.HasValue && r.IsChecked.Value); if (programme != null) { // 存在选中的RadioButton,执行你的业务逻辑 } else { // 没有任何选项被选中的处理逻辑 }
方式二:先判断是否存在选中项,再获取对象
bool hasCheckedRadio = programm_wahl.Children.OfType<RadioButton>().Any(r => r.IsChecked.HasValue && r.IsChecked.Value); if (hasCheckedRadio) { var programme = programm_wahl.Children.OfType<RadioButton>().First(r => r.IsChecked.HasValue && r.IsChecked.Value); // 执行逻辑 }
额外提示
如果你的RadioButton设置了相同的GroupName,正常情况下应该至少有一个被选中(除非初始状态都未设置IsChecked);但如果是不同组的RadioButton,可能存在多个选中或全未选中的情况,需要根据实际场景调整逻辑。
内容的提问来源于stack exchange,提问作者M.Nasiri
相关产品推荐
相关产品推荐

