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

发布于 2024-11-05 11:29:32 字数 381 浏览 0 评论 0原文

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

我写的代码(并且不能很好地工作)

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

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

谢谢。

I define some ItemsControl and added to the ItemsControl.Items a 12 RadioButtons.
One of the RadioButton is Checked.
And i want to find the context of the Checked RadioButton.

The code that i wrote ( and does not work well )

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

What is my mistake ?
How can i do it in other way ( i dont want to use for / foreach loop )

Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

难得心□动 2024-11-12 11:29:32

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

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

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

Your result currently is an IEnumerable<object> that has one element (the content of the one checked radio button) - but you just need this one element itself, for that you can use Single():

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

Also t1.IsChecked is already boolean, no need to compare it with true.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文