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

时间:2011-05-08 19:49:23

标签: linq

我定义了一些ItemsControl并添加到ItemsControl.Items中,一个12个RadioButtons。 其中一个RadioButton是Checked。 我想找到Checked RadioButton的背景。

我写的代码(并且运行不正常)

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

我的错误是什么? 我怎么能以其他方式做到这一点(我不想用于/ foreach循环)

感谢。

1 个答案:

答案 0 :(得分:2)

您的结果当前是IEnumerable<object>,其中包含一个元素(已选中一个单选按钮的内容) - 但您只需要这一个元素,因为您可以使用Single()

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

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