如何使用 Linq 在 ItemsControl.Items 中查找正确的项



我定义了一些 ItemsControl 并添加到 ItemsControl.Items a 12 个单选按钮中。其中一个单选按钮被选中。我想找到选中单选按钮的上下文。

我写的代码(并且效果不佳)

string str = ( from t1 in itemsControl.Items.OfType<RadioButton>()
               where t1.IsChecked == true
               select t1.Content).ToString();

我的错误是什么?我如何以其他方式做到这一点(我不想使用 for/foreach 循环)

谢谢。

您的结果当前是一个具有一个元素(一个选中的单选按钮的内容)的IEnumerable<object> - 但您只需要这个元素本身,为此您可以使用Single()

string str = ( from t1 in itemsControl.Items.OfType<RadioButton>()
               where t1.IsChecked
               select t1.Content).Single().ToString();

另外t1.IsChecked已经是布尔值,无需将其与true进行比较。

相关内容

  • 没有找到相关文章

最新更新