c# - 如何迭代其中的选项卡和列表框

标签 c# wpf tabs

我有一个 WPF 应用程序,用于选择稍后作为自动化测试应用程序的一部分运行的测试。

在 UI 中,我有多个选项卡控件代表每个测试类别。每个选项卡内都有一个包含每个测试的复选框的列表框。

当用户选择所有测试并单击运行按钮时,我需要遍历每个选项卡和其中的列表框以构建最终测试列表。我不想有大量类似以下内容的声明:

GetTab1Tests();
GetTab2Tests();
GetTab3Tests();
// Continue

我想以一种我可以说的方式设计它:

foreach(Tab t in tabControl)
{
    CollectTestsFromListbox(**listbox associated with t**);
}

如何绑定(bind)这些信息?我最好的猜测是创建一个字典,将选项卡与必要的列表框配对,但这种良好做法是否向前发展?随着被测试应用程序的增长,对更多选项卡的需求也可能增长。

编辑 目前我尝试设置选项卡的 DataContext:

<TabItem x:name="tabLoginTests DataContext="{Binding ElementName=lstboxLoginTests}">

在 .xaml.cs 文件中我可以调用:

tabLoginTests.DataContext

所有这一切都是返回 {System.Windows.Controls.ListBox Items.Count:4}。我不知道如何获取这个对象并获取列表框控件本身。有什么建议吗?

最佳答案

在创建 ListBox 时尝试将 ListBox 添加到目标 TabControl 对象的 Tag 属性。

然后您将能够使用 t.Tag 访问它。然后您可以将其转换为 ListBox(.Tag 是一个对象)。

关于c# - 如何迭代其中的选项卡和列表框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26262614/

相关文章:

c# - httpWebRequest(底层连接已关闭 : The connection was closed unexpectedly. )

c# - 访问不在绑定(bind)列表中的 Datagridview 列

javascript - 无法读取 null 的属性 'removeClass'

jquery - 屏幕底部的选项卡,单击时随内容上升

java - 切换 fragment 时滑动选项卡滞后

c# - 将数据从远程服务器拉到本地服务器......最好,最安全的方式

C#构造函数的方法引用

c# - Duende身份服务器: How to return external provider tokens also to the Angular/WPF/MVC client along with Duende tokens

wpf - 从另一个程序集为 WPF 中的 UserControl 设置样式

c# - 在 WPF 中单击按钮执行文件操作